Node.js .then()中的意外承诺值

Node.js .then()中的意外承诺值,node.js,promise,Node.js,Promise,我刚刚继承了一些代码,其中包含了一些我以前从未见过的东西。在四处闲逛之后,我还没有找到任何足以解释我所看到的东西 doAThingThatReturnsAPromise() .then(currentState => { ... return token.save({ key1: val1, key2: 'val2' }); }) .then(() => { console.log(arguments); }); token.save()

我刚刚继承了一些代码,其中包含了一些我以前从未见过的东西。在四处闲逛之后,我还没有找到任何足以解释我所看到的东西

doAThingThatReturnsAPromise()
  .then(currentState => {
    ...
    return token.save({ key1: val1, key2: 'val2' });
  })
  .then(() => {
      console.log(arguments);
  });
token.save()
返回无值的已解析承诺(例如
返回承诺.resolve()

令我惊讶的是,在第二个
.then()
参数有一个值,它是
当前状态的值。我以前从未遇到过这个问题,也没有找到任何文档表明如果通过空解析,这是预期的情况


有没有人能给我解释一下,或者给我指出一些设定这种期望的文档?因为我没有预料到,所以我想确保我记录了它,或者,如果这是某种意外的副作用,我会稍微改变一下。

这不是原生JS承诺的正常行为

Promise.resolve('a'))
.然后(函数(){
返回承诺。解决()
})
.然后(函数(){
console.log(参数)

})
这不是本机JS承诺的正常行为

Promise.resolve('a'))
.然后(函数(){
返回承诺。解决()
})
.然后(函数(){
console.log(参数)

})
我无法想象会发生这种情况。但是,有一种可能性是,
参数
变量在第二个
then()中的
当前状态
和匿名函数的父范围内
。如果不看这段代码,很难说出任何事情。我无法想象会发生这种情况。但是,有一种可能性是,
参数
变量在第二个
then()中的
currentState
和匿名函数的父范围内
。如果不查看此代码段周围的代码,很难说出任何内容。