SyncPromiseEx
by evgkch
JavaScript
const testData = Array.from({ length: 10 }, (v, k) => {
const func = () => new Promise((resolve, reject) => {
setTimeout(() => {
Math.random() > 0.5
? resolve(`${k} done!`)
: reject(`${k} fall!`);
}, 1000 * Math.random());
});
return func;
})
const syncFunc = ([first, ...rest]) => {
first()
.then((e) => {
console.log(`${e} success! `)
if (rest.length > 0) return syncFunc(rest)
})
.catch((e) => {
console.log(`${e} fucking shit!`)
if (rest.length > 0) return syncFunc(rest)
})
}
setInterval(() => { console.log('interval intervention!') }, 500)
syncFunc(testData)