error-captured-loader
webpack loader: 为 await 表达式自动注入异常处理函数,并以
[err, res]
的格式返回,适用于 async/await 的同步写法
async/await 异常处理
举个例子,异步函数如下
{ return { }}
// 没有异常处理,异步函数抛出错误时程序会直接报错 { await await // 报错}
使用 try catch
{ await try await catch err console }
使用同步写法
// 包裹一个 Promise 用于处理异常 { return { return promise }} { const err res = await console // Error: reject.. null const err1 res1 = await console // null resolve!!}
使用 loader 自动注入
直接编写,此 loader 会自动包裹一层上面的异常处理函数
// 源码 { const err res = await console // Error: reject.. null const err1 res1 = await console // null resolve!!} // 编译后 { const err res = await console // Error: reject.. null const err1 res1 = await console // null resolve!!}
TODO
以下表达式暂时不会被转换,暂时只识别await 表达式,是一个声明变量,且变量是一个数组(用于解构)
// 表达式await // 没有解构const res = await // 表达式赋值而不是声明变量let reserr res = await // 没有解构,且不是声明变量res = await