这是我简单的应用程序
for(var i = 0 ; i < prod.length;i++ ){
var urls = prod[i].URL
urls = urls.split(" ")[0];
scrapeIt(urls, {
avatar: {
selector: ".image img"
, attr: "src"
}
}).then(async ({ data, response }) => {
// console.log(`Status Code: ${response.statusCode}`)
urli = "https://www.choithrams.com"+data.avatar
var name = prod[i].Name
var price = prod[i].price
console.log(name)
})
}
我想逐步获取结果,但它没有正确迭代。 其次,例如,我在外部有一个全局变量,我想用我得到的变量覆盖它的值,我不能简单地做到这一点。
结果是
Mara Chopped Tomatoes Easy Open 400 gms
Mara Chopped Tomatoes Easy Open 400 gms
Mara Chopped Tomatoes Easy Open 400 gms
Mara Chopped Tomatoes Easy Open 400 gms
Mara Chopped Tomatoes Easy Open 400 gms
Mara Chopped Tomatoes Easy Open 400 gms
这是mineJSON中的最后一项。 我是所有这方面的初学者,请提供帮助。
答案 0 :(得分:0)
在这种情况下,最好使用Promise.all
Promise.all(prod.map(({ URL, Name, price }) => {
const URL = URL.split(" ")[0];
return scrapeIt(urls, {
avatar: {
selector: ".image img"
, attr: "src"
}
}).then(async ({ data, response }) => {
// console.log(`Status Code: ${response.statusCode}`)
const urli = "https://www.choithrams.com" + data.avatar
return {
urli, Name, price
}
})
})).then(results => {
// Results is an array of:
// { urli: "...", Name: "...", price: ... }
...
})