[英]javascript promises inside array
我正在做一個簡單的任務,其中有一個正方形和矩形等形狀的數組,並且還有另一個數組的大小作為參數傳遞給名為findAllObjectArea
函數。
我想從我的函數findAllObjectArea
返回一個findAllObjectArea
,該函數表示我所有對象的區域數組。 同樣在我的函數中,我想返回表示該區域的findObjectArea
。
我已經創建了下面的模板,但是我正在努力尋找它的正確語法。 你能幫我這個忙嗎?
let findObjectArea = (myobject, sizes) => {
new Promise(function(resolve, reject) {
if(myobject== 'square') {
resolve(sizes[0]*sizes[0]);
} else if(myobject== 'rectangle') {
resolve(sizes[0]*sizes[1]);
}
}
}
let findAllObjectArea = (objects, all_sizes) => {
new Promise((resolve, reject) => {
for(var i=0; i<objects.length; i++) {
findObjectArea (objects[i], all_sizes[i]);
}
);
}
重寫第二個函數:
// Use `const`, you're never gonna change this.
const findAllObjectArea = (objects, all_sizes) => {
const promises = [];
// I'm using 'let'. Why use 'var' if you have access to 'let' ;)
for(let i=0; i < objects.length; i++) {
promises.push(findObjectArea (objects[i], all_sizes[i]));
}
// Now we wait for ALL promises to resolve
return Promise.all(promises);
}
從您的問題尚不清楚,您想對所有這些操作的結果做什么,所以我假設您想返回一個包含所有結果的數組。
只是為了好玩,這是具有更現代的循環原語的另一種選擇:
// Use `const`, you're never gonna change this.
const findAllObjectArea = (objects, all_sizes) => {
const promises = [];
// I'm using 'let'. Why use 'var' if you have access to 'let' ;)
for(const [index, obj] of objects.entries()) {
promises.push(findObjectArea (obj, all_sizes[index]));
}
// Now we wait for ALL promises to resolve
return Promise.all(promises);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.