This Javascript function seems to use the while loop in an asynchronous way. Is it the correct way to use while loops with asynchronous conditions?
var Boo; var Foo = await getBar(i) while(Foo) { Boo = await getBar3(i) if (Boo) { // something } Foo = await getBar(i) i++ } What I think it does is this:
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...} } } } }) If that's totally false could you show another way to do it with async await + while loop?
Thanks!!
Is it the correct way to use while loops with asynchronous conditions?
Yes. async functions simply suspend their execution on every await until the respective promises fulfills, and any control structures continue to work as before.
Yep, it's fine to do it like this:
let stopped = false // infinite loop while(!stopped) { let res = await fetch('api link') if (res.something) stopped = true // stop when you want }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With