简单的 ES6 承诺问题 - 交换解析和拒绝参数

Simple ES6 promises issue - Swapped resolve and reject parameters

在这里,我希望在控制台中看到 4,然后是 5。我认为一旦第一个 add 解析,then 将通过匿名函数,returns 另一个 add

所以我错过了什么导致只有第一个 add 成为 运行?

Fiddle: http://www.es6fiddle.net/iobmmhs3/

var add =  function(a, b) {
    return new Promise(function(reject, resolve) {
        console.log(a+b);
        resolve(a+b);
    });
};

add(1,3)
.then(function() {
    return add(2,3)
})

你的resolvereject倒过来了:

var add =  function(a, b) {
    return new Promise(function(resolve, reject) {
        //                      ^^^^^^^  ^^^^^^
        console.log(a+b);
        resolve(a+b);
    });
};

add(1,5)
.then(function() {
    return add(2,2)
});

Fiddle: http://www.es6fiddle.net/iobm7rb7/

有关文档,请参阅 MDN。为了将来参考,你如何在不知道传递给构造函数的函数签名的情况下调试它:在控制台中,你应该看到一个 Uncaught in Promise 错误,这表明你的承诺被拒绝了,但没有有一个拒绝处理程序。