所有:
我是Promise的新手,这是一个例子:
var someAsyncThing = function() { return new Promise(function(resolve, reject) { // this will throw, x does not exist resolve(x + 2); }); }; var someOtherAsyncThing = function() { return new Promise(function(resolve, reject) { reject('something went wrong'); }); }; someAsyncThing().then(function() { return someOtherAsyncThing(); }).catch(function(error) { console.log('oh no', error); });
我不太了解.then()是如何与Promise一起工作的,现在我可以理解someAsyncThing()
返回一个Promise,它将产生一个异常,从而转向.catch()
部分.如果我们换resolve(x+2)
到resolve(4)
,那么它会去运行someOtherAsyncThing();
和返回另一个承诺,
第一个问题是.then()的返回是否是Promise?
而第二个问题,如果在someOtherAsyncThing()
的承诺,我使用resolve(x+2)
造成了异常,那么它也去同.catch()
一部分,那么我怎么能作出这样的.catch()
只捕获异常引起的someAsyncThing()
"为链接的承诺(和同样的问题.then()
,如果有任何)?
谢谢