【发布时间】:2017-04-01 13:08:54
【问题描述】:
我正在努力学习使用 Promise。
在这种情况下,我想制作一个网络 scraper 。我在这段代码中使用了request-promise。
实际上 scraper 工作正常。我误解了如何在then() 中使用返回值。我也用谷歌搜索了它,但没有运气,仍然卡住了。这是我的代码。
let categories = scraper.getCategories(promoUrl);
categories.then(function (val) {
let promoPerCategory = [];
for (let i = 0, len = val.length; i < len; i++) {
let json = {
category: val[i].category,
url: val[i].url,
promo: []
}
scraper.getPromoPerCategories(val[i].url)
.then(function (allPromo) {
for (let j = 0, lenResult = allPromo.length; j < lenResult; j++) {
json.promo.push({
imageUrl: allPromo[j].imageUrl,
merchantName: allPromo[j].merchantName,
promoTitle: allPromo[j].promoTitle,
validUntil: allPromo[j].validUntil,
promoUrl: allPromo[j].promoUrl
});
console.log(json.promo[j]);
}
})
promoPerCategory.push(json);
}
result.send({ "promoPerCategory": promoPerCategory });
})
then() 内部函数 getPromoPerCategories 工作正常,我使用 console.log(json.promo[j]) 打印出值
但问题是我想将数组从 json.promo[j] 放入数组 promoPerCategory 以便我可以使用 result.send({ "promoPerCategory": promoPerCategory }) 返回它
你能帮我做正确的方法吗?任何帮助将不胜感激。
结果现在是这样的
{"promoPerCategory": [{"category":"Fashion","url":"https://","promo":[]}
对象promo 是空数组
【问题讨论】: