console.log1234 如何同步

how console.log1234 in synchronous way

如何在这个函数中控制1234。使用等待或异步。现在它记录 1243。它应该在 3 之前等待,然后记录 4。

    function Call(){
     console.log('1');
     console.log('2');
     setTimeout(()=>console.log('3'),1000);
     console.log('4');
    }
    Call();

正如评论中所建议的,这里的关键是创建一个基于承诺的 setTimeout as described here:

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

然后使您的函数成为 async 函数和 await 超时:

async function call(){
    console.log('1');
    console.log('2');
    await delay(1000);
    console.log('3');
    console.log('4');
}
call();

通常,您想处理错误,但我们知道上面不能抛出任何错误,所以...

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

async function call(){
    console.log('1');
    console.log('2');
    await delay(1000);
    console.log('3');
    console.log('4');
}
call();

how console.log1234 in synchronous way

注意上面让函数中的逻辑同步了,但是代码并没有同步执行。 call returns 从 await 开始,然后在计时器触发并确定承诺后恢复。