如何在此功能中控制臺 1234。使用等待或異步。現在它記錄 1243。它應該在 3 之前等待然后記錄 4。
function Call(){
console.log('1');
console.log('2');
setTimeout(()=>console.log('3'),1000);
console.log('4');
}
Call();
uj5u.com熱心網友回復:
正如評論中所建議的,這里的關鍵是創建一個基于承諾的,setTimeout 如下所述:
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();
console.log1234 如何同步
注意,上面使函式中的邏輯同步,但代碼并沒有同步執行。call從 開始回傳await,然后在計時器觸發并完成承諾時恢復。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379815.html
標籤:javascript 功能 异步 同步
