Получение данных от выполненного объекта Q обещания в узле REPL
Рассмотрим этот простой объект Q обещания:
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.
Есть идеи?
2 ответа
var p = functionThatReturnsPromise();
Обещания имеют state
а также value
определены, но для доступа к этому вам нужно использовать valueOf()
функционировать над этим.
p.valueOf() ==> promise value
p.inspect() ==> { state: 'fulfilled', value: 'data' }
Вы можете попробовать это:
p.then (function (value) {debugger;});
Затем "продолжить" - выполнение будет остановлено, когда обещание будет выполнено и будет вызван обратный вызов. Заметьте, однако, что он, кажется, зависает, узел 0.12.4, хотя я думаю, что это ошибка узла - возможно, она подойдет вам.