2

考虑这个简单的 Q 承诺对象:

nesh> var p = functionThatReturnsPromise();

如果我去的话,REPL 可以输出承诺的状态和价值:

nesh> p
{ state: 'fulfilled',
  value: 
   {
     // (data properties)
   }
}

假设我确实在等待 promise 实现,我无法直接通过p.valueor获取值或状态p.state

我可以做类似的事情:

nesh> var data
undefined
nesh> p.then(function(_data) { data = _data })

然而,流畅的 REPL 工作流程让人感觉笨拙和不舒服。

有任何想法吗?

4

2 回答 2

3
var p = functionThatReturnsPromise();

Promise 确实有statevalue定义,但是要访问它,您需要使用该valueOf()函数。

p.valueOf() ==> promise value
p.inspect() ==> { state: 'fulfilled', value: 'data' }
于 2015-07-03T17:33:00.420 回答
0

你可以试试这个:

p.then(function (value) { debugger; });

然后“继续”——当 Promise 完成并调用回调时,执行将停止。但是请注意,它似乎冻结了,节点 0.12.4,尽管我认为这是一个节点错误——也许对你有用。

于 2015-07-03T18:04:59.273 回答