我刚刚开始阅读有关Promise / A +的内容,并希望自己尝试一下。
我添加了多个then()
回调,这种行为令人惊讶。
1)链接当时不会返回相同的承诺
> new Promise(function(a, r) {a('hello')}).
then(function(r) { console.log('1', arguments) }).
then(function(r) { console.log("2", arguments) })
1 ["hello"]
2 [undefined]
2)非链接按预期工作
> p = new Promise(function(a, r) {a('hello')});
p.then(function(r) { console.log('1', arguments) });
p.then(function(r) { console.log("2", arguments) })
1 ["hello"]
2 ["hello"]
方案#1的用例是什么?
答案 0 :(得分:2)
你应该从承诺中返回价值。
new Promise(function(a, r) {a('hello')}).
then(function(r) {
console.log('1', arguments);
return r;
}).
then(function(r) { console.log("2", arguments) })

返回值作为参数传递给then
函数中的回调。