JavaScript await 優雅的捕獲異常


await 包裝器

/**
 * await 包裝函數 
 * @return {Array} 包裝結果的數組
 * @param promise {Promise} promise對象
 * */
const awaitWrapper = promise => {
    return promise.then(result => [null, result]).catch(error => [error, null])
}

demo

const [bufferError, buffer] = await awaitWrapper(getFileBuffer(url))
/*
 * 捕獲結果 返回值為數組,
 * 數組的第一個元素為error,
 * 當promise函數resolve的時候為空, 
 * 第二個元素為success result,
 * 當promise函數reject的時候為空
 */
if (bufferError) return bufferError
// 其他操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM