題目詳情:
請你編寫一個異步函數,它接收一個正(zheng)整數參(can)數 millis ,并(bing)休眠這(zhe)么多毫秒。要求此(ci)函數可以解(jie)析任何值。
示例:
輸入:millis = 200
輸出:200
解釋:在 200ms 后函數執行完時返回一個 Promise 對(dui)象
解題思路:
首先(xian)定(ding)義(yi)一個(ge)名為 sleep 的(de)異(yi)步函數。該函數內部使用 setTimeout 來創建一個(ge)延遲指定(ding)時間的(de)定(ding)時器,并返回一個(ge) Promise 對(dui)象。
在調用 sleep 函數時,我們可以使用 then 方法來注冊一個回調函數,當延遲時間結束后,該回調函數將被調用。在示例代碼中,我們在回調函數中簡單地輸出了 millis 的值。
在異步函數中需(xu)要使用(yong) async/await 或者 .then 方法來處理 Promise 對象的返(fan)回(hui)值。
代碼實現:
function sleep(millis) {
return new Promise(resolve => setTimeout(resolve, millis));
}
// 示例輸入
const millis = 200;
// 異步調用 sleep 函數
sleep(millis).then(() => {
console.log(millis); // 在等待指定時間后輸出 millis 的值
});