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后) 商品数据