Nodejs: Сколько блоков .then () вы можете связать в обещании? - PullRequest
2 голосов
/ 27 апреля 2020

Обещания - это новое дополнение к Javascript (ES6).

Мы можем сделать цепочку обещаний, добавив обработчик .then() друг к другу.

Например:


//Using MongoDB query as an example,

db.collection.findOne({id:userId})
.then()
.then()
.then()
.....
.catch(err)

Итак, мой вопрос: сколько блоков .then() вы можете получить за одно обещание?

Я думаю, что, возможно, это зависит только от предела вычислительной мощности системы. Но мне также интересно, есть ли какое-либо ограничение programmatic, наложенное Javascript.

Ответы [ 2 ]

8 голосов
/ 27 апреля 2020

Метод then возвращает Promise, который допускает цепочку методов. Когда значение просто возвращается из обработчика then, оно фактически возвращает Promise.resolve(<value returned by whichever handler was called>). Следовательно, ограничений нет. Источник

8 голосов
/ 27 апреля 2020

Нет ограничений, кроме вашей памяти, поскольку каждый из них создает новое обещание и несколько обратных вызовов. И обратите внимание, что вы не связываете все .then() s с одиночным обещанием, вы соединяете каждое из них с обещанием, которое вернул предыдущий вызов.

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