如何深入理解JS异步编程中Promise的原理和应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1358个文字,预计阅读时间需要6分钟。
前言JS 是基于单线程事件循环的概念构建的,回调函数不会立即执行,由事件轮询去检测事件是否执行完成,当执行完成后,将结果放入回调函数的参数中,然后执行回调函数。
前言
“JS 是基于单线程事件循环”的概念构建的,回调函数不会立即执行,由事件轮询去检测事件是否执行完毕,当执行完有结果后,将结果放入回调函数的参数中,然后将回调函数添加到事件队列中等待被执行。
同时也讲了回调函数的问题:
一是“回调地狱”,因为异步回调函数的特点:回调函数是作为异步函数的参数,一层一层嵌套,当嵌套过多,将使代码逻辑变得混乱,也无法做好错误捕捉和处理(只能在回调函数内部 try catch)。
二是回调的执行方式不符合自然语言的线性思维方式,不容易被理解。
三是控制反转(控制权在其他人的代码上),假如异步函数是别人提供的库,我们把回调函数传进去,我们并不能知道异步函数在调用回调函数之外做了什么事情。
本文共计1358个文字,预计阅读时间需要6分钟。
前言JS 是基于单线程事件循环的概念构建的,回调函数不会立即执行,由事件轮询去检测事件是否执行完成,当执行完成后,将结果放入回调函数的参数中,然后执行回调函数。
前言
“JS 是基于单线程事件循环”的概念构建的,回调函数不会立即执行,由事件轮询去检测事件是否执行完毕,当执行完有结果后,将结果放入回调函数的参数中,然后将回调函数添加到事件队列中等待被执行。
同时也讲了回调函数的问题:
一是“回调地狱”,因为异步回调函数的特点:回调函数是作为异步函数的参数,一层一层嵌套,当嵌套过多,将使代码逻辑变得混乱,也无法做好错误捕捉和处理(只能在回调函数内部 try catch)。
二是回调的执行方式不符合自然语言的线性思维方式,不容易被理解。
三是控制反转(控制权在其他人的代码上),假如异步函数是别人提供的库,我们把回调函数传进去,我们并不能知道异步函数在调用回调函数之外做了什么事情。

