[英]I want to store the Data inside the variables with (new Promise)? javascript
[英]How do I store data inside a promise in an array(JavaScript)?
完成后,下面的代码不会向数组添加任何内容。 我认为如果再添加另一个,则可以解析数据并允许我在范围外使用它。
function getImgUrls(searchItems) { searchItems.forEach(currentItem => { let image; imgClient.search(currentItem, options). then(images => { return images[0].url; }).then(finalResult => { console.log(finalResult); pushToArray(finalResult); }) .catch(error => {console.log(error); }); }); }
您有很多承诺,因此您需要知道何时完成。 这里最简单的方法是使用Promise.all()
。 并且,由于您要累积一个.forEach()
数组,因此最好使用.map()
而不是.forEach()
:
function getImgUrls(searchItems) {
return Promise.all(searchItems.map(currentItem => {
return imgClient.search(currentItem, options).then(images => {
// make the url be the resolved value of the promise
return images[0].url;
});
}));
}
getImgUrls(...).then(urls => {
console.log(urls); // final array of urls
}).catch(err => {
console.log(err);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.