JSFiddle - React, Tailwind, and code Playground
by Artem
JavaScript
'use strict';
const getAsyncData = () => new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
data: {
time: new Date().toLocaleTimeString(),
}
})
}, 1000);
});
function* simpleGen() {
const ts1 = yield getAsyncData();
const ts2 = yield getAsyncData();
return [ts1, ts2];
}
const execute = gen => {
const it = gen();
let d = it.next();
let p = Promise.resolve();
while(d.value) {
p = p.then(v => {
d = it.next(v);
});
}
};
execute(simpleGen, (err, data) => {
console.log(data);
});