gpt4 book ai didi

javascript - 生成器和 babel-node

转载 作者:行者123 更新时间:2023-12-03 09:39:43 24 4
gpt4 key购买 nike

不确定是否是我对 ES6 缺乏使用 Babel 的经验,但我正在尝试创建一种异步 if ...then

var token = 6;

var f1 = function*() {
if (token > 5) {
getToken();
token = yield;
}
console.log(token);
};

var getToken = function() {
for (i=0; i<10000000; i++) {
var x = i*2;
}
f1(0);
};

f1();

然后我从它的文件中运行它

babel-node generator.es6.js

我期待0,但我什么也没得到。

最佳答案

您需要调用生成器函数来创建生成器,然后使用 .next() 调用来推进该生成器:

function* f() {
var token = 6;
if (token > 5) {
getToken();
token = yield;
}
console.log(token);
};

function getToken() {
setTimeout(function() {
f1.next(0); // advance generator
}, 100);
};

var f1 = f(); // create generator
f1.next(); // start generator

请注意,推进生成器必须异步完成,直接从 getToken 调用它会导致 f1.next() 出现 TypeError > 当 f1 仍在执行时。它需要首先到达 yield 语句。

关于javascript - 生成器和 babel-node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31225313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com