這個Javascript函數似乎以異步方式使用while循環。 這是正確的方式來使用while循環與異步條件?使用等待異步的循環。
var Boo;
var Foo = await getBar(i)
while(Foo) {
Boo = await getBar3(i)
if (Boo) {
// something
}
Foo = await getBar(i)
i++
}
我認爲它是這樣的:
var Boo;
var Foo;
getBar(i).then((a) => {
Foo = a;
if(Foo) {
getBar3(i).then((a) => {
Boo = a
if(Boo) {
//something
i++;
getBar(i).then((a} => { Repeat itself...}
}
}
}
})
如果你能表現出另一種方式與異步做到這一點伺機+ while循環,這是完全錯誤的?
謝謝!
只是FYI,異步/等待不是ES 6的一部分。 –
等待轉換成狀態機。你可以像你寫的那樣擁有許多小型狀態機(很難推理),或者你可以有一個更大的狀態機(這就是C#所做的)。 –
「正確的方式」是什麼意思?如果這個代碼做你想要的,那麼它是正確的。 –