2015-07-27 3 views
5

Рассмотрите эту ситуацию.Возвращаемое значение функций разрешения/отклонения Promise

new Promise(function(resolve, reject) { 
    var x = resolve(2); 
}); 

Какое значение будет x be? Я попытался распечатать его, и он показал мне undefined. Это интуитивно, но всегда ли так? Это в документах?

Второй вопрос

new Promise(function(resolve, reject) { 
    resolve(2); 
    return 5; 
}); 

То, что мы должны вернуться из функции, которую мы помещаем в обещание? Не игнорируется ли это значение?

ответ

4

Возвращаемое значение конструктора обещаний is ignored.

resolve функция тоже returns undefined.

Это было впервые указано в спецификации конструктора обещаний, а затем в ES2015 (ES6) language specification.

+0

Можете ли вы показать его в спецификации Promises? –

+0

@ MichałKownacki Я добавил цитаты, а именно, отметьте заметку в http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise-executor –

+0

Да, но я использую узел. js с Bluebird, он использует стандарт Promises/A +. –

Смежные вопросы