我有两个js文件。(nodejs)都有生成器函数。我想从另一个文件调用一个文件的生成器函数。这两个文件都有多个 yield ,我想先运行 file1 的 yield ,然后运行 file2 的所有 yield 。
文件1.js
function* file1Func(){
console.log("1");
yield* GetFunc();
console.log("2");
yield* file2.file2Func();
console.log("3");
yield* GetFunc2();
}
文件2.js
function* file2Func(){
console.log("A");
yield* func1();
console.log("B");
yield* func2();
console.log("C");
yield* func3();
}
预期输出: 1 2 A B C 3 输出:1 2 A 3
最佳答案
您的代码在结构上与以下代码类似:
function* dummy() {
yield null;
}
function* func1() {
console.log(`a`);
yield* dummy();
console.log(`b`);
yield* dummy();
console.log(`c`);
}
function* func2() {
console.log(1);
yield* dummy();
console.log(2);
yield* func1();
console.log(3);
}
for (let x of func2()) {
}
它应该记录您的预期输出,因为生成器已生成,直到完成为止。 3
无法在 file2Func
的所有日志之前记录。
关于javascript - 多次调用另一个js文件的生成器函数并与生成器同步运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56129081/