我看了一下bluebird promise FAQ,其中提到了这.then(success, fail)是一个反模式.我不太了解它对try和catch的解释.以下是什么问题?
some_promise_call()
.then(function(res) { logger.log(res) }, function(err) { logger.log(err) })
Run Code Online (Sandbox Code Playgroud)
似乎这个例子建议以下是正确的方法.
some_promise_call()
.then(function(res) { logger.log(res) })
.catch(function(err) { logger.log(err) })
Run Code Online (Sandbox Code Playgroud)
有什么不同?
之间有什么区别catch和then(_,onRejected)在ES6 Promise?我只知道onRejected不处理被拒绝的内心状态Promise.
Promise.resolve().then(() => {
return new Promise((resolve,reject) => {
throw new Error('Error occurs');
});
},er => console.log(er)); //Chrome throws `Uncaught (in promise)`
Promise.resolve().then(() => {
return new Promise((resolve,reject) => {
throw new Error('Error occurs');
});
}).catch(er => console.log(er)); //Error occurs
Run Code Online (Sandbox Code Playgroud) 我们知道 Promise 构造函数采用一个执行器函数,该函数有两个参数,我们用它们来生成成功案例或失败案例。今天我正在编程,我被卡住了,但后来我解决了这个问题,但我发现有一件事需要理解。
有什么区别
new Promise(resolve => {
// resolve
});
Run Code Online (Sandbox Code Playgroud)
和
new Promise((resolve,reject)=>{
// resolve
// reject
});
Run Code Online (Sandbox Code Playgroud)
我们可以这样做吗?
new Promise(resolve => {
// resolve
}, reject => {
// reject
});
Run Code Online (Sandbox Code Playgroud)
例子将更受赞赏。谢谢 !!!