关于javascript:ES6之生成器

ES6生成器:一种非凡的函数/异步编程/函数代码分隔符

function getUserData() {
    setTimeout(() => {
        const data = '用户数据'
        iterator.next(data);
    }, 1000)
}

function getOrderData() {
    setTimeout(() => {
        const data = '订单数据'
        iterator.next(data);
    }, 1000)
}

function getGoodData() {
    setTimeout(() => {
        const data = '商品数据'
        iterator.next(data);
    }, 1000)
}

function * gen() {
    // 第二次调用next()传入的参数作为第一个yield函数执行的返回值
    const userData = yield getUserData();
    console.log(userData);
    const orderData = yield getOrderData();
    console.log(orderData);
    const goodData = yield getGoodData();
    console.log(goodData);
}

let iterator = gen();
iterator.next();
// (1s后) 用户数据
// (1s后) 订单数据
// (1s后) 商品数据

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理