返回課程

使用承諾延遲

內建函式 setTimeout 使用回呼。建立一個基於承諾的替代方案。

函式 delay(ms) 應傳回一個承諾。該承諾應在 ms 毫秒後解析,以便我們可以像這樣加入 .then

function delay(ms) {
  // your code
}

delay(3000).then(() => alert('runs after 3 seconds'));
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

delay(3000).then(() => alert('runs after 3 seconds'));

請注意,在此任務中,resolve 是在沒有參數的情況下呼叫的。我們不會從 delay 傳回任何值,只確保延遲。