JS PROMISE ERROR
一般规则:
子函数返回Promise,不必使用catch处理,错误处理由最顶层的Promise处理.
promise reject 后,没有被catch的话,目前不会结束代码运行。会继续执行后续代码,不过会在最后报个警告: UnhandledPromiseRejectionWarning。并提示在后续的 node 版本中会导致进程非正常结束,就是崩掉。
Async的作用有二个
- 函数返回 Promise
- 函数中使用 await
await 对错误的处理方式:
- await 执行时如返回REJECT,则扔出错误,可以使用try/catch语句捕获.
Then , Catch , Finally
- catch 捕获错误,
- 使用reject 而不是throw
- finally 不影响 then/catch的数据流.不接受任何参数,可做一些清理工作.
1
2
3
4# Output: Good ABC Promise{ <state>: "fulfilled" ,<value>: undefined }
Promise.resolve("ABC").finally(() => console.log("Good")).then((dat) => console.log(dat));
# Output: Good Promise{ <state>: "fulfilled", <value>:"ABC" }
Promise.reject("ABC").finally(() => console.log("Good")).catch((dat) => dat);