之间有什么区别 javascript承诺中的
resolve
和onFulfilled
?
同样,
之间有什么区别 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.resolve
Promise.resolve([value | promise])返回promise Promise.resolve() function是一个方便的函数,用于创建一个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);
}
};
答案 0 :(得分:1)
简单地说
当一个promise被解决时,将调用任何当前或将来的onFullfilled函数,并且该函数的参数是resolve函数的值
与reject / onRejected类似