如何知道promise函数调用是否捕获异常?



我有两个简单的函数如下,一个是callback,另一个是Promise,在回调函数中,我可以知道函数调用者是否捕获了异常,但在Promise函数中我不知道如何处理。

第一个

let call = function(a,b,success,fail){
if(a==b){
success();
}
else{
if(fail){
fail();
}
else{
alert("a is not equal b");
}
}
}

第二个

let call = function(a,b){
return new Promise(resolve,reject){
if(a==b){
resolve();
}
else{
//I want to code here, if the call is not catch error, 
//the system alert("a is not equal b"), otherwise call the reject.           
}
}
}

没有好的方法知道调用者是否正在处理承诺拒绝。有些方法在某些情况下是有效的,但我不建议你这么做。

所有的承诺都要求调用者处理任何可能的拒绝——这不是可选的。这是有承诺的法律。这是使用API契约的一部分。试图弥补客户端编写的错误代码并不是API本身的责任,并且承诺也不是为了使其可行而设计的。

因此,您不能根据是否处理承诺拒绝来更改函数的行为。

最新更新