美文网首页
异步迭代生成器

异步迭代生成器

作者: haha2333 | 来源:发表于2019-08-07 18:13 被阅读0次

举个例子,一目了然(代码好长,不想打出来了)
用中文描述就是:
在ajax请求成功的方法内,执行迭代器的next方法,并且传入请求成功返回的参数。使生成器继续执行。(把返回参数的下一步操作放生成器中。。。)

术语就是:把异步作为实现的细节抽象了出去,使我们可以以同步顺序的形式追踪流程控制。

生成器+promise

var fetch = require('node-fetch');
function* gen(){
  var url = 'https://api.github.com/users/github';
  var result = yield fetch(url);
  console.log(result.bio);
}

上面代码中,Generator 函数封装了一个异步操作,该操作先读取一个远程接口,然后从 JSON格式的数据解析信息。就像前面说过的,这段代码非常像同步操作,除了加上了yield命令。
执行这段代码的方法如下。

var g = gen();
var result = g.next();

result.value.then(function(data){
  return data.json();
}).then(function(data){
  g.next(data);
});

上面代码中,首先执行 Generator 函数,获取遍历器对象,然后使用next方法(第二行),执行异步任务的第一阶段。由于Fetch模块返回的是一个Promise对象,因此要用then方法调用下一个next方法。

又看完几页书,还是没有讲到asyncawait。好!继续看

相关文章

  • 详解generator(二)——异步、委托和并发

    异步迭代生成器 先看一个例子,用于控制异步流程的暂停阻塞 同步错误处理 从生成器向外抛出错误: 手动通过throw...

  • 异步迭代生成器

    举个例子,一目了然(代码好长,不想打出来了)用中文描述就是:在ajax请求成功的方法内,执行迭代器的next方法,...

  • ES6速学(12~)

    十二、生成器 生成器其实就是一个特殊的函数。它主要用于异步编程。 1.生成器函数与迭代器 这段代码并不会输出Hel...

  • yield and Iterator

    Generator(生成器) 生成器是特殊的迭代器,迭代器不一定是生成器。 生成器与迭代器均是可迭代对象。 目前学...

  • 2019-03-20

    1 迭代器和生成器 迭代器 获取数据:next (迭代器)、for 循环遍历 ,数据来源:转换、生成器 生成器:...

  • 你不知道的JavaScript(中卷)|生成器(二)

    异步迭代生成器回想一下回调方法: 如果想要通过生成器来表达同样的任务流程控制,可以这样实现: 在yield foo...

  • co.js

    tj大神出品,让异步回调,同步的形式执行 这里co的作用,接受一个生成器,生成器中用两个yield迭代了两次pro...

  • 【Python学习】9.切片、迭代、列表生成式、生成器、迭代器与

    本节摘要:切片;迭代;列表生成器;生成器 generator;迭代器 iterator Daily Record:...

  • ES6的准备==>koa

    迭代器 生成器函数 co库(源码) 箭头函数 写法精简和定义父作用域共享this用法示例 处理异步的场景 impo...

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

网友评论

      本文标题:异步迭代生成器

      本文链接:https://www.haomeiwen.com/subject/wvsadctx.html