学习
实践
活动
工具
TVP
写文章
专栏首页李才哥Generator 函数的异步应用
原创

Generator 函数的异步应用

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 删除。

登录 后参与评论
0 条评论

相关文章

  • ES6中的迭代器、Generator函数以及Generator函数的异步操作

    最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可...

    lizelu
  • Generator 函数的语法

    李才哥
  • ES6的异步编程之Generator

    异步编程对 JavaScript 语言太重要。JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可。

    javascript.shop
  • JavaScript 异步编程指南 — 了解下 Generator 更好的掌握异步编程

    Generator 是 ES6 对协程的实现,提供了一种异步编程的解决方案,和 Promise 一样都是线性的模式,相比 Promise 在复杂的业务场景下避免...

    五月君
  • Generator 函数的含义与用法

    本文是《深入掌握 ECMAScript 6 异步编程》系列文章的第一篇。 Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与...

    ruanyf
  • ES6中的Generator函数

    之前在React项目中,遇到异步请求,都是通过redux-thunk来处理,但使用这种方式,action就变得不那么纯净了。当前新的趋势是使用redux-sag...

    张子阳
  • ES6之Generator函数的语法

    Function关键字之后加*内部用yield表达式,相当于这个函数有三个状态a、b、c。调用的时候跟普通函数一样,但是不是执行这个函数,而是返回一个指针对象,...

    wade
  • 一文带你搞懂JavaScript的Generator函数

    而 Generator 可以按需一个接一个地返回(“yield”)多个值。它们可与 iterable 完美配合使用,从而可以轻松地创建数据流。

    前端进阶者
  • 正确使用异步函数的姿势[每日前端夜话(0x06)]

    在编写异步函数时,await 、 return与return await之间存在差异,选择正确的处理方式非常重要。

    疯狂的技术宅
  • SAP UI5 函数节流和异步完成令牌的应用

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • JavaScript 异步函数的 Promisification 处理

    Promisification 是一个很长的词,表示一个编程范式的转变,即将接受回调的函数转换为一个返回类型为 Promise 的函数。

    Jerry Wang
  • 《深入浅出Node.js》:Node异步编程解决方案 之 生成器(Generator)函数

    关于生成器函数和迭代器的基础,在之前有成文,可以点击《你不知道的JavaScript》:迭代器Iterator的背景梳理和《你不知道的JavaScript》:弄...

    前端_AWhile
  • 异步函数的两个视角

    以下示例代码是用Scala写的,不过本文所讲的话题并不仅限于Scala,任何有Future/Promise支持的语言都是适用的。

    ThoughtWorks
  • 关于javascript的回调函数与异步函数的关系理解

    同步回调函数的意义在于:你可以灵活的指定回调函数的内容,同步回调函数会在最后把你指定的函数执行了。

    lilugirl
  • 用回调函数调用异步流回调函数内的数据

    本文的标题看起来也许比较绕,看不懂也没关系,后面会慢慢说明。写这篇文章是为了记录一下前几天我碰到的一个问题。

    凌虚
  • JavaScript中的异步生成器函数[每日前端夜话0xC9]

    TC39异步迭代器提案 将 for/await/of 引入了 JavaScript【http://thecodebarbarian.com/getting-st...

    疯狂的技术宅

作者介绍

精选专题

活动推荐

扫码关注腾讯云开发者

领取腾讯云代金券