JS异步编程
hysteria、
这个作者很懒,什么都没留下…
展开
-
JS异步之generator介绍
了解细节可以访问阮一峰大神的ES6入门https://es6.ruanyifeng.com/#docs/generator,下面是我自己总结的一些介绍。 一、Generator Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。 执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。 二、原创 2020-08-05 21:50:10 · 179 阅读 · 0 评论 -
JS异步之Promise解决信任问题(一)
文章目录promise对于不信任问题的解决。1调用过早、调用过晚2回调未调用3调用次数过多4未能传递参数/环境值5吞掉错误或者异常promise也没有摆脱回调 promise对于不信任问题的解决。 1调用过早、调用过晚 以为promise的then是异步的,所以不论你调用早或者晚,状态改变的早或者晚,都要等这一轮宏任务完成后才能去执行微任务,去执行then。 2回调未调用 1、首先,没有任何东西(包括错误)能阻止promise决议,如果你对promise注册了一个完成回调和一个拒绝回调,那么promise总原创 2020-08-05 13:09:32 · 407 阅读 · 0 评论 -
JS异步之回调的缺陷
文章目录一、什么是回调函数二、回调地狱三、信任问题四、总结 一、什么是回调函数 回调函数,也被称为高阶函数,是一个被作为参数传递给另一个函数(在这里我们把另一个函数叫做“otherFunction”)的函数,回调函数在otherFunction中被调用。当使用一些异步的函数来实现的回调我们称为异步回调。 二、回调地狱 由多层嵌套的回调函数组成的代码称为回调地狱,多数在写阻塞执行代码的时候会产生。回调地狱的代码可读性差,很难让人弄清楚业务逻辑。 下面便是回调地狱的代码例子` listen('click',fu原创 2020-08-04 15:45:11 · 398 阅读 · 0 评论 -
JS异步之事件循环机制
一、单线程为什么会有异步 说到js的单线程(single threaded)和异步(asynchronous),这不是自相矛盾么?其实,单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,宿主环境通过某种方式(事件驱动,下文会讲)使得js具备了异步的属性,虽然有webworker酱紫的多线程出现,但也是在主线程的控制下。webworker仅仅能进行计算任务,不能操作DOM,所以本质上还是单线程。简单的来说就是原创 2020-08-04 13:53:29 · 479 阅读 · 1 评论