我正在http://nodeschool.io/经历承诺 - 不会伤害的课程。以下是赋值promise_after_promise
的解决方案'use strict';
/* global first, second */
var firstPromise = first();
var secondPromise = firstPromise.then(function (val) {
return second(val);
});
secondPromise.then(console.log);
// As an alternative to the code above, ou could also do this:
// first().then(second).then(console.log);
他们没有将任何值传递给console.log但它仍然打印值如何?
答案 0 :(得分:3)
promise.then
接受一个函数(实际上是两个,但这里只使用了一个函数)。然后它使用已解析的promise的结果调用此函数。在这种情况下,console.log
是一个函数,使用已解析的promise的结果调用它。
更容易理解的替代方案是
secondPromise.then(function(result) {
console.log(result);
});
但它会产生不必要的功能。