美文网首页
9,Promise同步写法,异步实现

9,Promise同步写法,异步实现

作者: r8HZGEmq | 来源:发表于2019-11-18 16:42 被阅读0次

为什么Promise的写法是同步的,但实现了异步操作,即实现了任务的不连续
Generator函数,交出了执行权。Generator容器中会有暂停标志位

function* gen(x) {
  var y = yield x + 2;
  return y;
}

var g = gen(1);
g.next() // { value: 3, done: false }
g.next() // { value: undefined, done: true }

Generator返回一个内部指针g,而不是返回结果。调用g.next(),会移动内部指针的阶段。next让异步任务的容器Generator,分阶段的执行任务,返回一个对象(value属性和done属性)。done表示是否执行完

再看一个例子:Async/Await也是一个自执行的generate函数

var fetch = require('node-fetch');

function* gen(){  // 这里的*可以看成 async
  var url = 'https://api.github.com/users/github';
  var result = yield fetch(url);  // 这里的yield可以看成 await
  console.log(result.bio);
}
// execute
var g = gen();
var result = g.next();
result.value.then(function(data){
  return data.json();
}).then(function(data){
  g.next(data);
});

相关文章

  • 9,Promise同步写法,异步实现

    为什么Promise的写法是同步的,但实现了异步操作,即实现了任务的不连续Generator函数,交出了执行权。G...

  • 微信小程序中使用co来处理异步流程

    co是一个基于ES6 Generator特性实现的【异步流程同步化】写法的工具库。 co需要使用Promise特性...

  • 异步组件

    减少首屏体积 工厂函数 写法 通过闭包实现函数只调用一次 promise 写法 高级异步组件 写法 原理异步组件实...

  • 【前端】interview时碰到的js手写题

    *多个实现异步的方法 Promise.all(iterable)实现,同步执行完所有参数里的promise任务,再...

  • 前端程序员面试你应该懂的原生JS——3

    1. Promise构造函数是同步还是异步执行,then呢 ?promise如何实现then处理 ? Promis...

  • ES6 Promise 异步1

    - 异步 和 同步 promise对象: 用同步方式书写异步代码 promise 让异步写起来,像写同步一样流程...

  • ES6的学习(下)

    promise:异步操作同步化 同步 -- 串行 简单、方便异步 -- 并行 性能高、体验好promise的是...

  • js任务队列究极口诀

    同步大于异步大于回调 console.log new promise 的算同步 promise的then算异步 s...

  • 异步编程之 Async与Await

    Async关键字 async异步,是一个关键字。用同步函数的写法声明异步函数。且异步返回的结果是一个Promise...

  • Promise基本用法

    Promise是es6中解决回调地狱一种同步优雅写法。promise.then作为微任务队列中的一种异步,优先级高...

网友评论

      本文标题:9,Promise同步写法,异步实现

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