Комментарии 12
А какой кейс может быть для использования асинхронных генераторов? Ведь получается так, что мы будем использовать асинхронные функции, которые еще и внутри себя будут использовать асинхронные функции?
+2
Мне кажется, что как минимум можно сделать несколько асинхронных запросов, перед тем, как вернуть результат. Но это безумно надуманный вариант.
0
Так есть Promise.all() для этого.
Я говорю, из того, что понял я, получается работа с асинхронным кодом внутри уже асинхронного кода. При этом используя две разные технологии.
Я говорю, из того, что понял я, получается работа с асинхронным кодом внутри уже асинхронного кода. При этом используя две разные технологии.
0
В асинк генераторах просто удобнее и предсказуемее писать асинк код, так же как и в асинк функциях.
Например, вместо
можно
Например, вместо
async function* poll(url){
let p = Promise.resolve();
while(true){
p = p.then(()=> fetch(url).then(call => call.json())
yield p;
p.then(() => delay(500));
}
}
можно
async function* poll(url){
while(true){
const call = await fetch(url);
yield await call.json();
await delay(500);
}
}
0
Первый листинг с ошибками, должно быть так
function* poll(url){
let p = Promise.resolve();
while(true){
p = p.then(()=> fetch(url).then(call => call.json())
yield p;
p = p.then(() => delay(500));
}
}
0
deleted.
0
А можно чуть-чуть пояснить, что тут происходит (для человека, хорошо знакомого с промисами и не очень — с генераторами)?
0
У .all() как минимум нет заданной последовательности. async получить ссылки => async получить данные по ссылкам => await вернуть данные.
0
По сути это просто синтаксический сахар, т.к. там те же промисы.
Но на самом деле удобно: когда-то давно попробовал, теперь постоянно так пишу. Код становится проще и понятнее.
Но на самом деле удобно: когда-то давно попробовал, теперь постоянно так пишу. Код становится проще и понятнее.
0
Так же как и в python — экономия памяти при генерировании и итерировании коллекций.
-1
Модными тенденциями не интересуюсь, смотрю свое, поэтому хотел бы узнать, товарищ на фото выше как связан с темой статьи?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
JavaScript: многоликие функции