解决和 onFulfilled 之间的区别

Sim*_*aur 5 javascript

有什么区别

resolveonFulfilledjavascript 中的承诺?

同样,有什么区别

rejectonRejected?简单来说,我只想问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)

Jar*_*a X 2

简单的说

当一个 Promise 被解析时,任何当前或未来的 onFullfilled 函数都将被调用,该函数的参数是解析函数的值

与reject/onRejected类似