如何解决返回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 举报,一经查实,本站将立刻删除。