[英]Javascript Loop through array and make call API for each value in array
哪個 javascript 循環最適合以下情況?
我想讓 API 調用數組中的每個值。 值可能比下面顯示的更多。 我已經查看了循環類型以及 promise 全部,我很困惑該做什么示例
// 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);
我在哪里放置這個部分
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);
最好和最簡單的方法是使用for
循環並將每個 promise 存儲在一個數組中。 循環完成后,您可以使用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)
你可以閱讀更多關於Promise.all([])
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
這是一個使用JSONPlaceholder API的小例子
const todos = [1,2,3,4,5]; let promiseArray = []; for(let i=0;i<todos.length;i++){ promiseArray.push(fetch('https://jsonplaceholder.typicode.com/todos/'+todos[i])) } Promise.all(promiseArray).then(values=>values.map(value=>console.log(value.url+" ==> "+value.status))).catch(err=>console.log(err))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.