Size: a a a

JavaScript.Ninja

2021 September 15

EV

Evgeniy Vanzhula in JavaScript.Ninja
Как вариант: async возвращает промис, await ждет промис.... но это ключевые слова и их "нельзя" добавить через библиотеку. Иначе это уже синтаксически был бы не javascript
источник

ТФ

Татьяна Фомина... in JavaScript.Ninja
там ссылка на карьерный трек хекслета, но в в нем ничего про такое собеседование не сказано. надо учится на хекслете, чтобы попасть на такое собеседование?
источник

KR

Kirill Romanov in JavaScript.Ninja
ну эти ключевые слова появились уже сильно позже добавления промисов
источник

A

Alex in JavaScript.Ninja
у Тимура на канале есть интересное видео, где он рассказывает об асинхронности, и там он говорит что библиотека 'do' работает быстрее чем промисы. Интересно почему эту библиотеку не добавили в стандарт? https://youtu.be/hY6Z6qNYzmc?t=1707
источник

IK

Illya Klymov in JavaScript.Ninja
Вот вам вопрос

async function handle(foo) {
 if (!(foo instanceof Promise)) {
   await foo;
   console.log(1);
 }
}

Расскажите что произойдет в этом коде
источник

С

Сергей in JavaScript.Ninja
мне кажется для наглядности можно было сохранить результат выражения await foo в переменную и что-то сделать с этим результатом
источник

IK

Illya Klymov in JavaScript.Ninja
этот аспект меня не интересует )
источник

EV

Evgeniy Vanzhula in JavaScript.Ninja
await - в спеке если передан не промис await ничего не делает
источник

EV

Evgeniy Vanzhula in JavaScript.Ninja
странный вопрос...если передаем промис - ничего не произойдет, если что угодно другое выведется 1
источник

С

Сергей in JavaScript.Ninja
не уверен что формулировка "ничего не делает" правильная
источник

R

Ratmir in JavaScript.Ninja
Мне кажется вызовется функция
источник

IK

Illya Klymov in JavaScript.Ninja
не всегда )
источник

IK

Illya Klymov in JavaScript.Ninja
это вопрос не на "позадрачивать про странности js" - это как раз прямое следствие вопроса про зачем в языке промисы, что такое промисы и вообще
источник

DP

Dmytro Petunenko in JavaScript.Ninja
Кстати да, а зачем собсвенно появились промисы интересно?
Ведь это всего лишь паттерн, как скажем и обзервер, но промисы появились нативно а обзервер пока еще нет
Мне интуитивно кажется что коллбеки задолбали всех чуть больше и поэтому первые пошли промисы в язык
Их кстати неадавно у себя на ютуб канале Мелихов разбирал и писал их сам, весьма интересно
источник

DZ

D Z in JavaScript.Ninja
foo обернется в Promise.resolve и все, что после него попадёт в очередь микротасок
источник

С

Сергей in JavaScript.Ninja
можно еще почитать про AsyncIterator и Thenable
источник

EV

Evgeniy Vanzhula in JavaScript.Ninja
Это всего лишь способ описать событие в будущем  выполнение которого может выполнится асинхронно и на который можно отреагировать через then.
источник

С

Сергей in JavaScript.Ninja
добавлю про await, если ему скормить объект (не Promise) или скаляр, await вернет то что было скормлено
источник

DZ

D Z in JavaScript.Ninja
Потому что в этом случае он обернет его в промис
источник

С

Сергей in JavaScript.Ninja
await не оборачивает ничего в Promise, он скорее "раздевает" промис. А вот результат асинхронной функции всегда оборачивается в промис
источник