返回Symbol.asyncIterator对象的函数的类型

问题描述

我正在构建一个类,该类接收一个URL数组,并使用asyncIterator逐个处理这些URL。整个代码当前正在工作,但是我想显式地为execute()和crawl()方法添加类型,所以我需要您的帮助。 预先感谢

class Crawlers {
  public urls: string[];

  constructor(urls: string[]) {
    this.urls = urls;
  }

  private execute(cookie: ICookie) {
    const urlsIterator = this.urls[Symbol.iterator]();
    return {
      async next() {
        const iteratorResult = urlsIterator.next();
        if (iteratorResult.done) {
          return { done: true };
        }
        const url = iteratorResult.value;
        try {
          const payload = await request(url,cookie);
          return {
            done: false,value: payload,};
        } catch (err) {
          const error: IRequestError = {
            url,err: err.message,};

          return {
            done: false,value: error,};
        }
      },};
  }

  public crawl(cookie: ICookie) {
    return {
      [Symbol.asyncIterator]: this.execute.bind(this,cookie),};
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...