Promise `then` с функцией, которая не возвращает ничего, против функции, возвращающей другое обещание - PullRequest
3 голосов
/ 16 января 2020

Я не могу понять, почему у нас такой странный результат выполнения этого кода.

Почему нет изображения 12121212? И после каждого 1 у нас есть три 2.

Promise.resolve()
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); });

Promise.resolve()
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); });

1 Ответ

8 голосов
/ 16 января 2020

Это потому, что в решении обещания с другим обещанием участвуют несколько тиков.

Но на самом деле вы должны игнорировать это и никогда не полагаться на временные интервалы между независимыми цепочками обещаний.

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