1. 程式人生 > 實用技巧 >2020 XDU 新生賽 A 有bear來

2020 XDU 新生賽 A 有bear來

一、非同步函式呼叫:

//例子:一個名為 createAudioFileAsync() 的函式,它接收一些配置和兩個回撥函式,然後非同步地生成音訊檔案。一個回撥函式在檔案成功建立時被呼叫,另一個則在出現異常時被呼叫

方法1、

// 成功的回撥函式
function successCallback(result) {
  console.log("音訊檔案建立成功: " + result);
}

// 失敗的回撥函式
function failureCallback(error) {
  console.log("音訊檔案建立失敗: " + error);
}

createAudioFileAsync(audioSettings, successCallback, failureCallback)

方法2、

/*
*更現代的函式會返回一個 Promise 物件,使得你可以將你的回撥函式繫結在該 Promise 上
*如果函式 createAudioFileAsync() 被重寫為返回 Promise 的形式,那麼我們可以像下面這樣簡單地呼叫它
*/

const aa = createAudioFileAsync(audioSettings); 
aa.then(successCallback, failureCallback);

//簡寫

createAudioFileAsync(audioSettings).then(successCallback, failureCallback);

二、鏈式呼叫:

//連續執行兩個或者多個非同步操作時,在上一個操作執行成功後帶著返回的結果,開始下一個操作 ,可用Promise鏈來實現(解決地獄回撥問題)