• 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
    // 其他操作
    
    为之则易,不为则难。
  • 相关阅读:
    3-8
    3-7
    3-5
    3-4
    3-3
    3-2
    3-1
    2-11
    2-10
    2-9
  • 原文地址:https://www.cnblogs.com/coderDemo/p/14886799.html
Copyright © 2020-2023  润新知