Получение данных от выполненного объекта 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, хотя я думаю, что это ошибка узла - возможно, она подойдет вам.

Другие вопросы по тегам