resolve和onFulfilled之间的区别

时间:2015-08-17 11:28:21

标签: javascript

之间有什么区别 javascript承诺中的

resolveonFulfilled

同样,

之间有什么区别

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

1 个答案:

答案 0 :(得分:1)

简单地说

当一个promise被解决时,将调用任何当前或将来的onFullfilled函数,并且该函数的参数是resolve函数的值

与reject / onRejected类似