Асинхронность на промисах, Promise, all, then, catch, race

preview_player
Показать описание


#промисы #асинхронное #программирование #javascript #js #nodejs
Рекомендации по теме
Комментарии
Автор

Тимур, моё почтение, спасибо =) Продолжаем Асинхронный курс =)

deanArtDev
Автор

Спасибо за лаконичность и доступность изложения! Подписался.

evgeniy
Автор

Спасибо большое вам за такие лекции! Cижу, как одержимый, наслаждаюсь полным погружением. Материал качественный. Отличная практика после статей на learn javascript. Кому то очень повезло иметь такого преподавателя. У нас же в вузе все вертится вокруг продуктов Microsoft и языка программирования C#.

СеменБеленко-од
Автор

Про Promise.race вы ошиблись, это примерно на 35:05 про reject, Вы говорите "Если все три вернуться с ошибкой то ..." а вот нет, вся суть в том что в catch мы попадем сразу как только любой из промисов вызовет reject. точно также как и в then попадем как только любой вызовет resolve, т.е. это типа "кто первый встал того и тапки" независимо от того reject или resolve

VasTracer
Автор

Спасибо за лекцию! Заметил что если после catch хотим продолжить цепочку then-catch то нужно и из catch возвращать промис. А то на следующий then не попадёт не каких аргументов (Конечно это актуально в тех случаях если в catch не бросаете ошибку (throw error))

TimurSevimli
Автор

Вы просто преподаватель и профессионал с больших букв П

никитаантипов-ул
Автор

32:12 А когда начинает промис исполняться? Не в момент создания? Разве не должны на момент начала исполнения Promise.all уже улететь все http-запросы?
Upd: Проверил. Улетают. Кстати, в 8-all.js в 5 строке ошибка: если не убрать прямой слэш в конце урла, то на все запросы, кроме корневого, server.js будет выдавать ошибку 404, т.к. роуты person и city будут резолвиться в //person и //city. PR сделаю. В 9-all.js это можно использовать для демонстрации .catch().

Fodintsov
Автор

Тимур спасибо и за эту лекцию! Не первый раз ее смотрю кстати уже. Периодически пересматриваю многие ваши видосы по темам в которых у меня возникают вопросы. И снова очередной вопрос у меня =) :
Если функция асинхронная, она возвращает промис в любом случае если что-то возвращает. Но я видел примеры где внутри асинхронной функции return new Promise(). В этом случае не получается масло масляное? Я понимаю, возможно таким образом хотели получить методы resolve и reject, но ведь в этом случае мы можем использовать await, try, catch. Так есть ли смысл внутри асинхронной функции писать return new Promise() ? Я так и не понял пока что.

maksimsergeevich
Автор

А стоит ли отменять те запросы, которые не доходят до promise.race()??
Чтобы не грузить сервер, например, лишним процессом?

sergeisychov
Автор

Скажите Тимур, можно ссылку на лекцию о создании серверов, про которую вы говорили в видео?

НиколайМельников-ке
Автор

а що краще використовувати на хай-лоад проектах, Promise.race чи async.race? Де буде кращий перформанс? З одної сторони async.race написаний на колбеках, а з іншої це 3-party бібліотека. Чи є щось подібне у metasync ?

itslen
Автор

А почему не сказано за разницу второго аргумента then c catch? Это не абсолютно идентично, в React советуют не использовать catch в промисе в useEffect, а вторым аргументом в then обрабатывать ошибки. Какая у них разница?

lex
Автор

2:30 Забавно, что у setTimeout параметр таймаута - необязательный. Но нигде не написано, чему он будет равен, если не указать. Ни в МДН, ни в спецификации HTML. Нет, интуитивно-то я понимаю, что должен быть 0. Но с таким же успехом и 1 может быть. :)

Fodintsov
Автор

Интересно спустя 4 года промисы в ноде по скорости очень близко подошли к колбекам ?

dmytrohaponov
Автор

Не вижу особой выгоды от обёртке — promisify

Doox
Автор

По Promise.all() и Promise.race() не до конца понял почему в первом случае callback содержит респонз всех запросов, а во втором случае только первого.
Это потому что в первом случае после каждого запроса они собираются в коллекцию и только после этого выполняется resolve()? А во втором он сразу же выполняется на первом успешном запросе?

a_mirg