Generator Not Evaluating Promises
Why doesn't the generator wait for the asynchronous prm promise to complete before moving on to the next yield? function *verify() { try { let prm = new Promise((resolv
Solution 1:
Because a generator - on its own - doesn't wait for anything. It just emits what you were yield
ing from the next()
call. You could of course have your loop wait when before calling next
again when it gets a promise.
What you are thinking of is async
/await
. You want to write
asyncfunctionverify() {
try {
let prm = newPromise((resolve,reject) => {
resolve("abc");
})
let k = await prm
console.log(k)
console.log("1")
console.log("2")
console.log("3")
} catch (err) {
console.log("error")
}
}
var prm = verify();
Post a Comment for "Generator Not Evaluating Promises"