多次调用另一个js文件的生成器函数,并与生成器同步运行

时间:2019-05-14 11:11:51

标签: javascript node.js generator

我有两个js文件。(nodejs)都有生成器功能。我想从另一个调用一个文件的生成器功能。这两个文件都有多个产量,我想先运行file1的产量,然后再运行file2的所有产量。

File1.js

public interface FooRepository extends JpaRepository<Foo, String> {

    // convenience method to provide a 'code -> object' mapping of all Foos
    default Map<String, Foo> mapAll() {
        return findAll().stream().collect(Collectors.toMap(o -> o.getCode(), o -> o));
    }
}

File2.js

function* file1Func(){
console.log("1");
yield* GetFunc();
console.log("2");
yield* file2.file2Func();
console.log("3");
yield* GetFunc2();

}

预期输出: 1 2 A B C 3 输出:1 2 A 3

1 个答案:

答案 0 :(得分:0)

您的代码在结构上与以下代码类似:

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