有什么区别
resolve在onFulfilledjavascript 中的承诺?
同样,有什么区别
reject和onRejected?简单来说,我只想问Promise.then(onsuccess, onreject)的onsuccess回调与Promise.resolve()有何不同?
我正在阅读 Daniel Parker 的《Javascript with Promises》。书上提到了两者,但我还没有意识到两者之间的区别。
在承诺中描述了当时的情况:
承诺.然后
Promise.then([onFulfilled], [onRejected]) 返回 Promise
Promise.then() 方法接受 onFulfilled 回调和 onRejected 回调。人们通常使用 Promise.catch() 注册 onRejected 回调,而不是将第二个参数传递给 then 。然后,该函数返回一个由 onFulfilled 或 onRejected 回调的返回值解析的 Promise。回调中抛出的任何错误都会拒绝带有该错误的新承诺。
还,
Promise.resolve
Promise.resolve([value|promise]) 返回promise Promise.resolve() 函数是一个方便的函数,用于创建已使用给定值解析的promise。如果您将 Promise 作为参数传递给 Promise.resolve(),则新的 Promise 与您提供的 Promise 绑定,并且它将相应地被履行或拒绝。
代码:
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);
}
};
Run Code Online (Sandbox Code Playgroud)