为什么When.js承诺。然后跳过一个函数?

时间:2014-08-05 21:18:32

标签: javascript promise when-js

有人可以解释为什么这会以相反的顺序打印吗?

代码:

when('test')
  .then(function() {console.log('should be first');})
  .then(console.log('should be second'));

输出:

should be second
should be first

PS:我使用的是when.js版本:when@3.4.3

1 个答案:

答案 0 :(得分:5)

您立即执行第二个console.log,并将返回值传递给then。您需要将函数传递给then

您已经有效地完成了这项工作:

var x = console.log('should be second')

when('test')
  .then(function () { console.log('should be first'); })
  .then(x);