Почему Promise выполняет условие then, прежде чем обещание выполнено? - PullRequest
0 голосов
/ 02 июля 2018

В следующем коде предложение 'then' выполняется сразу, оно не ожидает завершения Promise:

function doSomething() { ... }
p = new Promise( ... );
p.then(doSomething()}  

В то время как это прекрасно работает:

function doSomething() { ... }
p = new Promise( ... );
p.then(() => {doSomething()}}

Пожалуйста, кто-нибудь может объяснить, почему две версии не эквивалентны?

Вот пример кода, демонстрирующего это: https://jsfiddle.net/damianhelme/8b6pq9mL/18/

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

В первом примере вы выполняете функцию.

Попробуйте это: p.then (йоЗотеЬЫпд) Таким образом, вы передаете функцию, которая будет выполнена после выполнения обещания.

Обратите внимание, что здесь нет скобок

0 голосов
/ 02 июля 2018

Вы вызываете doSomething и передаете его результат .then. () => {...} создает новую функцию, которая будет вызываться цепочкой обещаний. Вы также можете сделать .then(doSomething), обратите внимание, без скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...