前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Generator 函数的异步应用

Generator 函数的异步应用

原创
作者头像
李才哥
修改2021-02-24 17:55:29
9220
修改2021-02-24 17:55:29
举报
文章被收录于专栏:李才哥李才哥

Generator 函数的异步应用

传统方法

回调函数

事件监听

发布/订阅

Promise 对象

基本概念

所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段

所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数

Promise 对象是一种新的写法,允许将回调函数的嵌套,改成链式调用

Generator 函数

第一步,协程A开始执行。

第二步,协程A执行到一半,进入暂停,执行权转移到协程B。

第三步,(一段时间后)协程B交还执行权。

第四步,协程A恢复执行。

Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行)

Generator 函数可以暂停执行和恢复执行,这是它能封装异步任务的根本原因

Thunk 函数

Thunk 函数是自动执行 Generator 函数的一种方法

Thunk 函数的定义,它是“传名调用”的一种实现策略,用来替换某个表达式

生产环境的转换器,建议使用 Thunkify 模块

co 模块

co 模块可以让你不用编写 Generator 函数的执行器

(1)回调函数。将异步操作包装成 Thunk 函数,在回调函数里面交回执行权。

(2)Promise 对象。将异步操作包装成 Promise 对象,用then方法交回执行权。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 传统方法
    • 回调函数
      • 事件监听
        • 发布/订阅
          • Promise 对象
          • 基本概念
            • 所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段
              • 所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数
                • Promise 对象是一种新的写法,允许将回调函数的嵌套,改成链式调用
                • Generator 函数
                  • 第一步,协程A开始执行。
                    • 第二步,协程A执行到一半,进入暂停,执行权转移到协程B。
                      • 第三步,(一段时间后)协程B交还执行权。
                        • 第四步,协程A恢复执行。
                          • Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行)
                            • Generator 函数可以暂停执行和恢复执行,这是它能封装异步任务的根本原因
                            • Thunk 函数
                              • Thunk 函数是自动执行 Generator 函数的一种方法
                                • Thunk 函数的定义,它是“传名调用”的一种实现策略,用来替换某个表达式
                                  • 生产环境的转换器,建议使用 Thunkify 模块
                                  • co 模块
                                    • co 模块可以让你不用编写 Generator 函数的执行器
                                      • (1)回调函数。将异步操作包装成 Thunk 函数,在回调函数里面交回执行权。
                                        • (2)Promise 对象。将异步操作包装成 Promise 对象,用then方法交回执行权。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档