Quantcast
Channel: User Ben Aston - Stack Overflow
Viewing all articles
Browse latest Browse all 56

Chaining promises returned from a generator function

$
0
0

I want to chain the promises returned by a generator function.

I am expecting this to print:

started...result is: initial valueresult is: waited for 10msresult is: waited for 20msdone

But it prints:

started...result is: initial valueundefinedresult is: waited for 10msdone

What am I doing wrong?

const wait = async(ms) =>     await new Promise((resolve) =>         setTimeout((result = `waited for ${ms}ms`)=>resolve(result),ms))const iterator = {    *[Symbol.iterator]() {        yield wait(10)        yield wait(20)    }}function chain(i) {    return [...i].reduce((acc,c) =>         acc.then((result) =>             (console.log(`result is: ${result}`), c)), Promise.resolve('initial value'))}chain(iterator).then(() => console.log('done'))console.log('started...')

Viewing all articles
Browse latest Browse all 56

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>