console.log打印值而不向其传递任何参数

时间:2016-07-19 09:01:07

标签: javascript node.js console

我正在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但它仍然打印值如何?

1 个答案:

答案 0 :(得分:3)

promise.then接受一个函数(实际上是两个,但这里只使用了一个函数)。然后它使用已解析的promise的结果调用此函数。在这种情况下,console.log是一个函数,使用已解析的promise的结果调用它。

更容易理解的替代方案是

secondPromise.then(function(result) {
  console.log(result);
});

但它会产生不必要的功能。