【随笔】JS异步编程的核心思想

本文主要阐述了JS异步编程的思想,不具体描述文中各个库的作用,阅读前需掌握Thunk、Promise的基础知识

1.Promise或者Thunk的作用在于,将一步操作中的请求与回调部分,明确的分离开了;
2.Generator的作用在于通过协程的方式,在yield后面跟上要执行的异步函数(准确的说yield后面跟上的是异步函数的请求部分),然后在流程控制的run函数中,通过调用iterator.next()来执行异步函数的请求部分,并获取异步函数的入口赋值给result.value,之后通过result.value(args)来执行异步函数的回调部分,并且在回调部分(如:Thunk的回调函数,或者Promise的then()函数)通过递归调用iterator.next();
3.由于yield能够暂停函数执行的作用,通过在异步操作的请求阶段交出控制权,以及在异步操作的回调阶段回收控制权,使得异步函数的执行过程看上去仿佛同步函数一般(var g = yield getFoo(),去掉yield的话是不是看上去和同步函数一样_),又通过流程控制中递归函数的不断迭代使得生成器中的代码可以一行完成执行,避免promise……then带来的阅读困难。

你可能感兴趣的:(【随笔】JS异步编程的核心思想)