美文网首页
ES6——generator函数(一)

ES6——generator函数(一)

作者: 向上而活 | 来源:发表于2020-06-20 11:44 被阅读0次

生成器,用于解决异步深度嵌套的问题(过渡期的产物,没有async好用,koa 框架新版本不支持generator函数)

function * show(){
    yield 'yangyi';
    yield '18';
    return '程序员'
}
let p=show();
console.log(p.next());//{value: "yangyi", done: false}
console.log(p.next());//{value: "18", done: false}
console.log(p.next());//{value: "程序员", done: true}  这是已经是最后一个值了,所以done为true
console.log(p);//输出一个对象
image

可以用for....of....循环遍历出generator函数中的内容,但是,得到的不是对象形式,而且return后的内容遍历不出来。

for(let val of p){
    console.log(val);**//yangyi 18**
}

//也可以配合解构与扩展运算,访问内部东西,同样无法访问return后的东西:
let [a,b,c]=p;
console.log(a,b,c);//yangyi 18 undefined
let [a,...c]=p;
console.log(a,c);//yangyi ["18"]
console.log(...p);//yangyi 18
console.log(Array.from(p));//["yangyi", "18"]
//generator函数与Promise对象相结合,解决异步,用的比较多
function * gen(){
    let val=yield 'yang';
    yield axios.get(`https:\/\/api.github.com/users/${val}`);
}

let g1=gen();
let username=g1.next().value;//指  let val=yield 'yang';
console.log(username);//yang
//把yield axios.get(`https:\/\/api.github.com/users/${val}`);变成一个promise对象
let reqPromise=g1.next(username).value;
reqPromise.then(res=>{
    console.log(res.data);
})

关于异步,解决方案:

1.回掉函数

2.事件监听

3.发布/订阅

4.Promise对象

相关文章

  • 03-JavaScript-Generator异步编程

    Generator 概念 Generator 函数是 ES6 提供的一种异步编程解决方案 Generator 函数...

  • co库的简易实现

    generator Generator 函数是 ES6 提供的一种异步编程解决方案。 执行generator函数会...

  • JavaScript异步处理——Generator及async函

    Generator Generator 函数是 ES6 提供的一种异步编程解决方案。Generator函数在fun...

  • Generator函数介绍

    什么事Generator函数 Generator函数是ES6提供的一种异步编程解决方案, 可以把Generator...

  • 关于es6新属性yield

    关于es6新属性yield yield是Generator函数中中断函数返回的一个属性。Generator函数即一...

  • 20.ES6中Generator生成器

    Generator是ES6的生成器1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以...

  • Generator函数实现斐波那契数列

    ES6 中 generator生成器函数 特点: 调用generator函数返回一个迭代器(iterator)对象...

  • Generator函数

    Generator 函数是 ES6 提供的一种异步编程解决方案。调用 Generator 函数后,该函数并不执行,...

  • redux-saga学习笔记

    1.Generator函数 Generator函数时ES6提供的一种异步编程解决方案,函数调用后,函数并不执行,返...

  • generator函数

    看了一些es6的用法之后,我对generator函数刮目相看。 我们知道generator函数提供了一...

网友评论

      本文标题:ES6——generator函数(一)

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