我正在学习nodejs中的承诺。
以下是我的示例代码
var Q = require('q');
Q.when(null)
.then(function () {
return 'kung foo';
})
.then(function (val) {
console.log(val); // kung foo
//return Q.when('panda');
return 'panda';
})
.then(function (val) {
console.log(val); // panda
// Nothing returned
})
.then(function (val) {
console.log(val == undefined); // true
});
在第二个“then”中,回调是否返回“返回Q.when('panda');”要么 “回归'熊猫';”输出相同(kung foo panda true)。
我想知道这两个陈述有什么不同。
答案 0 :(得分:0)
一个语句返回一个值(字符串'panda'
),另一个语句返回一个非常相同的值的承诺(使用字符串'panda'
解析的承诺)。
默认情况下,then
方法会在使用结果解析外部(链接)的promise之前等待从回调返回的promise,但是当回调返回一个普通值时,它只会采用该值。