考虑这个简单的Q promise对象:
nesh> var p = functionThatReturnsPromise();
如果我去,REPL非常友好地输出承诺的状态和价值:
nesh> p
{ state: 'fulfilled',
value:
{
// (data properties)
}
}
假设我确实等待履行承诺,我无法通过p.value
或p.state
直接获得价值和状态。
我可以做类似的事情:
nesh> var data
undefined
nesh> p.then(function(_data) { data = _data })
但是,对于流利的REPL工作流程来说,它感到笨拙和不舒服。
有什么想法吗?
答案 0 :(得分:3)
var p = functionThatReturnsPromise();
Promise确实定义了state
和value
,但是为了访问它,您需要使用valueOf()
函数。
p.valueOf() ==> promise value
p.inspect() ==> { state: 'fulfilled', value: 'data' }
答案 1 :(得分:0)
你可以试试这个:
p.then(function(value){debugger;});
然后“继续” - 当履行承诺并调用回调时,执行将停止。但请注意,它似乎冻结了节点0.12.4,虽然我认为这是一个节点错误 - 也许会对你有用。