小编Dav*_*nto的帖子

如何在打字稿中产生*数组

我有一个生成器方法,它异步地向数组添加一些东西,最后产生每个成员,yield* array如下所示:

while (!done) {
      await promise;
      yield* results; //<-- the array
      results = [];  //its emptied so as to not to yield dupes
      done = !this.#eventsListened.has(eventName);
    }
Run Code Online (Sandbox Code Playgroud)

然而,我们友好的邻居 tsc 报告了一个错误,我什至无法理解它或如何修复它。任何人都可以解释这个错误是什么意思,然后我应该如何产生数组的内容?

TS2766:无法将迭代委托给 value,因为其迭代器的“next”方法需要类型“undefined”,但包含生成器将始终发送“unknown”。

编辑:整个生成器功能如下

  /**
   * Returns an iterator that loops over caught events
   * @yields Promise<Event|CustomEvent>
   */
  async *on(eventName: string, options?: AddEventListenerOptions): AsyncGenerator<Event> {
    if (this.#eventsListened.has(eventName)) {
      return;
    }
    let results: Event[] = [];

    let resolve: (value?: PromiseLike<Event> | Event) => void;

    let promise = new …
Run Code Online (Sandbox Code Playgroud)

javascript arrays generator async-await typescript

3
推荐指数
1
解决办法
1756
查看次数

标签 统计

arrays ×1

async-await ×1

generator ×1

javascript ×1

typescript ×1