gpt4 book ai didi

javascript - promise 迭代一系列链接,使用 mercury-client 解析它们并将解析的内容推送到一个新数组中

转载 作者:行者123 更新时间:2023-11-30 07:33:13 26 4
gpt4 key购买 nike

我有一个链接数组,我想使用 mercury-client 解析其内容,并将结果推送到 articles 数组中。

* parseLinks() {
const links = yield this.getInboxMessages() // It will be ['link1', 'link2', ..., 'linkN']
const articles = []

return new Promise((resolve, reject) => {
for (let link of links) {
mercury.parse(link).then((data) => {
articles.push(data)
})
}

resolve(articles)
})
}

我看不出有什么问题,因为我只得到 []。我尝试将 Promise 移动到 for..of 中,但结果保持不变。

不过,通过删除循环并使其仅解析 links 数组的第一个索引,我没有遇到任何问题。

最佳答案

articles 被填满之前你就解决得太早了。

您可以将整个 return block 替换为:

return Promise.all(links.map(link => mercury.parse(link)));

只有在处理完每个链接后才会返回已解决的 promise 。

如果(且仅当)mercury.parse 函数可以处理作为裸函数引用传递而无需将 mercury 作为 this 传递 您可以进一步简化的上下文变量:

return Promise.all(links.map(mercury.parse));

关于javascript - promise 迭代一系列链接,使用 mercury-client 解析它们并将解析的内容推送到一个新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com