所以,我正在使用Javascript中的Web Audio API。而我目前看起来像这样
try {
this.processor=this.context.createScriptProcessor(this.blockLength,2,2);
}
catch(f)
{
this.processor=this.context.createJavaScriptNode(this.blockLength,2,2)
}
基本上,如果第一个失败,请尝试另一个。我不太喜欢这种结构。我认为这不是try / catch结构的样子。但它确实起到了作用。
有人有更好的方法吗?因此,如果两个语句都失败,我可以发出alert()命令。
感谢。
PS。我是JS的新手
答案 0 :(得分:3)
您可以在调用之前测试方法是否存在:
if(this.context.createScriptProcessor){
this.processor=this.context.createScriptProcessor(this.blockLength,2,2);
}
else if(this.context.createJavaScriptNode){
this.processor=this.context.createJavaScriptNode(this.blockLength,2,2);
}
else{
// do something else
}
答案 1 :(得分:0)
这里并不是一个JavaScript大师,但生病了。也许您可以使用布尔值检查try / catch语句是否有效:
var isProcessed = false;
try {
isProcessed = true;
this.processor=this.context.createScriptProcessor(this.blockLength,2,2);
}catch(f){
isProcessed = true;
this.processor=this.context.createJavaScriptNode(this.blockLength,2,2)
}
if(isProcessed == false){
alert("Not processed!");
}
这对你有用吗?