Node.js的Async和Await函数

2024-10-14 20:10:34

1、在async函数中,可以等待 Promise 完成或捕获它拒绝的原因。在Promise中实现一些自己的逻辑的话。

Node.js的Async和Await函数

3、在老的v8版本中,如果有有个 promise 的拒绝没有被处理你会得到一个警告,可以不用创建一个拒绝错误监听函数。然而,建议在这种情况下退出你的应用程序。因为当你不处理错误时,应用程序处于一个未知的状态。

Node.js的Async和Await函数

5、可以使用async/await重新这个例子,使其更简单。

Node.js的Async和Await函数

7、用这个解决方案,在第三个 then 中可以获得 valueA 和 valueB ,然后可以向前面两个 then 一样获得 valueA 和 valueB 的值。这里不能将圣诞树(毁掉地狱)拉平,如果这样做的话会丢失闭包, valueA 在 functioinC 中将不可用。方案2:移动到上一级作用域

Node.js的Async和Await函数

9、在函数 functionA 的 then 中使用一个数组将 valueA 和 Promise 一起返回,这样能有效的扁平化圣诞树(回调地狱)。方案4:写一个帮助函数

Node.js的Async和Await函数

11、数组迭代方法可以在 map 、 filter 、 reduce 方法中使用async函数,看起来不是很直观,可以在控制台中实验以下代码。

Node.js的Async和Await函数

12、如果是map迭代数据你会看到返回值为 [ 2, 4, 6, 8 ] ,唯一的问题是每个值被 AsyncFunction 函数包裹在了一个 Promise 中所以如果想要获得它们的值,需要将数组传递给 Promise.All() 来解开 Promise 的包裹。

Node.js的Async和Await函数

14、使用 Async/Await 将很大程度上的使应用程序具有高可读性,降低应用程序的处理复杂度(如:错误捕获),也使用 node v8+的版本不妨尝试一下,或许会有新的收获。

猜你喜欢