哪个 JavaScript 循环最适合下面的循环?
我想为数组中的每个值进行 API 调用。值的数量可能比下面显示的更多。我已经查看了循环类型以及所有承诺,我很困惑该做什么示例
// API Call 1. ABC
// API Call 2. DEF
// API Call 3. GHI
// API Call ....
// Input format example [ABC, DEF, GHI, ... ...]
var alp = "ABC, DEF, GHI";
var letters = alp.split(',');
var array = [letters];
// API Request
var apiRequest = http.request({
'endpoint': 'site',
'path':'/api/test/table/records',
'method': 'POST',
"headers": {
"Authorization": "Basic xxxxxxxxxxx=",
"Content-Type": "application/json"
}
});
var data = {};
var dept = {};
// Switch naming
switch (letters[0]) {
case 'ABC':
site = "A B.C";
break;
case 'DEF':
site = "D E.F";
break;
case 'GHI':
site = "G H.I";
break;
}
var u_department = dept;
data.u_department = u_department;
var apiResponse = apiRequest.write(data);
Run Code Online (Sandbox Code Playgroud)
我该把这个部分放在哪里
var data = {};
var site = {};
switch (letters[0]) {
case 'ABC':
site = "A B.C";
break;
case 'DEF':
site = "D E.F";
break;
case 'GHI':
site = "G H.I";
break;
}
var u_department = site;
data.u_department = u_department;
var apiResponse = apiRequest.write(data);
Run Code Online (Sandbox Code Playgroud)
最好和最简单的方法是使用for循环并将每个承诺存储在数组中。循环完成后,您可以Promise.all(promiseArray)根据已解决/拒绝的承诺执行操作。
let promiseArray = [];
for(let i=0;i<data.length;i++){
var apiRequest = http.request({
....
}
});
promiseArray.push(apiRequest)
}
Promise.all(promiseArray)
.then(fn)
.catch(fn)
Run Code Online (Sandbox Code Playgroud)
您可以阅读更多有关Promise.all([])
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
这是一个使用JSONPlaceholder API 的小示例
let promiseArray = [];
for(let i=0;i<data.length;i++){
var apiRequest = http.request({
....
}
});
promiseArray.push(apiRequest)
}
Promise.all(promiseArray)
.then(fn)
.catch(fn)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4949 次 |
| 最近记录: |