Асинхронные функции, async/await, thenable, обработка ошибок

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


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

Спасибо!
фабрика пришествий улыбнула)

timashoff
Автор

Спасибо огромное!!!! Наконец-то смог более-менее разобраться как "под копотом" себя ведут промисы и await.

victorklimov
Автор

Спасибо за объяснение таких сложных тем))

АскаровРуслан-лм
Автор

Все круто! Небольшая придирка к произношению слова Promise, она так и читается -- "промис", а не "промайс". Это, видимо, какая-то распространенная недопонимание чтения слов, что заканчивается на "-ise", ведь многие слова с этим окончанием так и читаются, как "-айз": ентерпрайз, райз и т.д. Например, есть у меня есть пара знакомых, которые произносят слово Service как "сервайс"

NicolayKrasotkin
Автор

13:21 "Просто это жоподельная константа, я не знаю, чему она должна быть равна". Я понимаю, что именно там звучит, но... :)))

Fodintsov
Автор

Мало. :( Не устаканивает знания. Надо еще что-нибудь почитать, посмотреть, порешать, да так, чтобы все эти переходы от асинхронщины к синхронщине и от async к промисам улеглись в голове. Ессно, я про себя только говорю. Наверное, пойду к Кантору, "Вы не знаете JS", Фланагану и на CodeWars. Тяжко дается эта тема почему-то.

Fodintsov
Автор

Тимур, не смог нигде найти информации, может вы знаете?

Насколько я знаю, JS выполняет все функции до завершения. Вопрос в том, что происходит с функцией когда внутри нее мы делаем await и промис еще не зарезолвися. Текущая функция пропадает из стека вызова? Ведь await не блокирует поток, следовательно мы должны эту функцию убрать из стека, но тогда другой вопрос, как мы возвращаемся в нее, когда промис (await) зарезолвился?

await умеет сохранять stack trace и возвращается во время резолва в нужное место?

shramko-dev
Автор

привет. вопрос не по теме.
6:17 "сплит, двоеточие и там асинхронную лямду".
Если под лямбдой подразумевается стрелочная функция, то ее this не найдет split.
const obj = {
name: 'Marcus Aurelius',
split: async (sep = ' ') => {
return this.name.split(sep);
}
};
(async () => {
console.log('await obj.split() =', await obj.split());
})(); // TypeError: Cannot read property 'split' of undefined
Или что имеется в виду?

romankotenko
Автор

У вас в thenable (9 пример) не работают цепочные вызовы метода then. Я исправил, сделал пуллреквест

ВладиславКучин-фм
Автор

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

dmytrohaponov
Автор

Привет. Почему __proto__ - жлобство, а Object.getPrototypeOf() - прилично?

superbrothers
Автор

1:00 "теперь появился" означает JS версии ES2017 и выше
Я сидел, не вдуплял, почему мой TS код не отличает Function от AsyncFunction. Оказалось я запускал в target: ES2016

тимур_атмосферный