Promise chain with delay
by mbychawski
Babel + JSX
let delayT = 1000;
function delay(t){
return function(value){
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(value);
}, t);
});
}
}
setTimeout(()=>{
let value = '1,';
console.log('1. value=', value);
setTimeout(()=>{
value += '2,';
console.log('2. value=', value);
setTimeout(()=>{
value += '3,';
console.log('3. value=', value);
setTimeout(()=>{
value += '4,';
console.log('4. value=', value);
}, delayT);
}, delayT);
}, delayT);
}, delayT);
let mDelayFunc = delay(delayT);
delay(6000)()
.then(()=>{
let value = '1,';
console.log('promise 1. value=', value);
return value;
})
.then(mDelayFunc)
.then((v)=>{
v += '2,';
console.log('promise 2. value=', v);
return v;
})
.then(mDelayFunc)
.then((v)=>{
v += '3,';
console.log('promise 3. value=', v);
return v;
})
.then(mDelayFunc)
.then((v)=>{
v += '4,';
console.log('promise 4. value=', v);
return v;
})