异步函数错误
由于异步函数是立刻返回的,异步事务中发生的错误是无法通过try-catch来捕捉的,只能采用由调用方提供错误处理回调的方案来解决。
例如Node中常见的function (err,...) {...}回调函数,就是Node中处理错误的约定:
即将错误作为回调函数的第一个实参返回。
再比如HTML5中FileReader对象的onerror函数,会被用于处理异步读取文件过程中的错误。
回调函数错误
由于回调函数执行时,异步函数的上下文已经不存在了,通过try-catch无法捕捉回调函数内的错误。
可见,异步回调编程风格基本上废掉了try-catch和throw。另外回调函数中的return也失去了意义,这会使我们的程序必须依赖于副作用。
原文链接:https://www.f2er.com/note/422603.html