有什么区别
resolve
和 onFulfilled
在javascript中承诺?
同样,有什么区别
reject
和 onRejected
?简单来说,我只想问一下Promise.then(onsuccess,onreject)的onsuccess回调与Promise.resolve()有什么不同?
我正在阅读Daniel Parker的Promise Javascript . 这本书提到了他们两个,但我还没有意识到两者之间的区别 .
然后在承诺中描述:
promise.then promise.then([onFulfilled],[onRejected])返回promise promise.then()方法接受onFulfilled回调和onRejected回调 . 人们通常使用promise.catch()注册onRejected回调,而不是传递第二个参数 . 然后,该函数返回一个promise,该promise由onFulfilled或onRejected回调的返回值解析 . 回调中抛出的任何错误都会拒绝带有该错误的新promise .
也,
Promise.resolve
Promise.resolve([value | promise])返回promise Promise.resolve()函数是一个便利函数,用于创建已使用给定值解析的promise . 如果您将promise作为参数传递给Promise.resolve(),则新承诺将绑定到您提供的承诺,并相应地履行或拒绝承诺 .
码:
function settled(promises) {
var alwaysFulfilled = promises.map(function (p) {
return p.then(
function onFulfilled(value) {
return { state: 'fulfilled', value: value };
},
function onRejected(reason) {
return { state: 'rejected', reason: reason };
}
);
});
return Promise.all(alwaysFulfilled);
}
};
1 回答
简单的说
当一个promise被解决时,将调用任何当前或将来的onFullfilled函数,并且该函数的参数是resolve函数的值
类似于拒绝/ onRejected