이 Javascript 함수는 while 루프를 비동기 방식으로 사용하는 것 같습니다. 비동기 조건이있는 while 루프를 사용하는 올바른 방법입니까? 당신이 비동기와 함께 할 수있는 또 다른 방법은 루프 동안 + 기다리고 있습니다 보여줄 수있는 완전히 거짓 경우Await Async를 사용하는 While 루프입니다.
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...}
}
}
}
})
:
var Boo;
var Foo = await getBar(i)
while(Foo) {
Boo = await getBar3(i)
if (Boo) {
// something
}
Foo = await getBar(i)
i++
}
내가 그것을하지 생각하면이 무엇입니까?
감사합니다.
참고로 비동기/대기는 ES 6의 일부가 아닙니다. –
상태 기계로 변환됩니다. 당신이 작성한 것처럼 많은 수의 작은 상태 머신을 가질 수도 있고 (또는 매우 추론하기가 어렵거나), 하나의 큰 상태 머신 (예 : C#이하는 것)을 가질 수 있습니다. –
"올바른 방법"이란 무엇을 의미합니까? 이 코드가 원하는대로 작동하면 올바른 것입니다. –