Size: a a a

2021 October 29

FA

Farid Akhmedov in codingteam
const channel = Promise.resolve(0)

for await (const something of promises) {
   if (some) {
       channel.then(x => x + 1)
   }
}

const result = await channel
источник

f

folex in codingteam
o_O
источник

f

folex in codingteam
.then вот так вот мутирует промис?
источник

f

folex in codingteam
а, не сработает же
источник

f

folex in codingteam
завершится с result = 0
источник

SS

Sergiy Shatunov in codingteam
почему?
источник

FA

Farid Akhmedov in codingteam
Представь что Promise это функтор, а then это fmap
источник

f

folex in codingteam
потому что await channel выполнится сразу же
источник

FA

Farid Akhmedov in codingteam
Нет
источник

f

folex in codingteam
ну, понятно, ты тут написал for await
источник

f

folex in codingteam
у меня-то не так 🙂
источник

f

folex in codingteam
у меня нету await перед loop
источник

FA

Farid Akhmedov in codingteam
Ну добавь и поведение будет похоже на то, что ты хотел
источник

f

folex in codingteam
это невозможно сделать
источник

FA

Farid Akhmedov in codingteam
Могу без этого await написть
источник

FA

Farid Akhmedov in codingteam
Будет чуть по-другому
источник

f

folex in codingteam
покажи, я пока не понял идею
источник

SS

Sergiy Shatunov in codingteam
а в чём проблема?
источник

f

folex in codingteam
но я удивлен что .then так работает
источник

f

folex in codingteam
// do something in async loop. Receive messages from network, process them, etc.
источник