Hàm Javascript này dường như sử dụng vòng lặp while theo cách không đồng bộ. Đây có phải là cách chính xác để sử dụng trong khi các vòng có điều kiện không đồng bộ không?Khi sử dụng vòng lặp Await Async.
var Boo;
var Foo = await getBar(i)
while(Foo) {
Boo = await getBar3(i)
if (Boo) {
// something
}
Foo = await getBar(i)
i++
}
Những gì tôi nghĩ nó là thế này:
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...}
}
}
}
})
Nếu đó là hoàn toàn sai sự thật bạn có thể hiển thị một cách khác để làm điều đó với async chờ đợi + trong khi vòng lặp?
Cảm ơn !!
Chỉ cần FYI, không đồng bộ/chờ đợi không phải là một phần của ES 6. –
đang chờ chuyển đổi thành máy trạng thái. Bạn có thể có một số máy trạng thái nhỏ như bạn đã viết (rất khó để giải thích), hoặc bạn có thể có một máy trạng thái lớn hơn (ví dụ như C#). –
Ý bạn là gì theo "cách chính xác"? Nếu mã này làm những gì bạn muốn, thì đó là chính xác. –