Я изучаю обещания в Узле JS.Я наткнулся на определенный код, который хочу синхронизировать (из любопытства).
function test1(){
return new Promise(async function(resolve,reject){
await promise1();
await promise2();
await promise3();
console.log('last');
resolve(true);
})
}
async function promise1(){
return new Promise(async function(resolve,reject){
console.log('promise1');
await setTimeout(myFunc, 1500, resolve);
console.log("111");
});
}
function myFunc(resolve) {
console.log(`arg was => resolve`);
resolve(true);
}
function promise2(){
return new Promise(function(resolve,reject){
console.log('promise2');
resolve(true);
});
}
function promise3(){
return new Promise(function(resolve,reject){
console.log('promise3');
resolve(true);
});
}
function callTest1(){
for(i=0;i<4;i++){
test1();
}
}
callTest1();
Я хочу вывод, подобный следующему:
promise1
arg was => resolve
111
promise2
promise3
last
promise1
arg was => resolve
111
promise2
promise3
last
promise1
arg was => resolve
111
promise2
promise3
last
promise1
arg was => resolve
111
promise2
promise3
last
Я хочу, чтобы мой код ждал setTimeOut, а затем только после него должен запускать другую функцию.Я знаю, в узле js у нас есть концепция асинхронизации, но почему-то я хочу, чтобы этот код был синхронизирован.