首先道歉,如果這是一個簡單的問題來解決,但我第一次使用node-fetch
和承諾的概念。我正在調用一個返回分頁數據的API端點,所以我得到了多個鏈接以獲取更多數據。使用Promise.all
我感到把所有的鏈接到一個數組處理這個,然後我想打電話給每個端點的陣列中,只是打印出來的數據到控制檯現在
所以我的第一個電話是
var urlArray = [];
fetch(`${BASE_URL}/leagues?api_token=${AUTH_TOKEN}`, { headers: headers })
.then(function(response){
return response.json(); // pass the data as promise to next then block
})
.then(function(json){
// Collect Paginated Results
var number_of_pages = parseInt(json.meta['pagination']['total_pages']);
for (i = 2; i < number_of_pages + 1; i++) {
urlArray.push(`${BASE_URL}?page=${i}&api_token=${AUTH_TOKEN}`)
}
})
.catch(function(error) {
console.log(error);
});
因此,一旦這樣做了,我有一個需要按順序點擊的網址數組,請問誰能給我一些指示,然後設置一個承諾,以擊中每一個?或者我可以在我的循環中做些什麼?
謝謝
[解析承諾一個接一個(即序列)?(HTTPS的可能重複: //stackoverflow.com/questions/24586110/resolve-promises-one-after-another-ie-in-sequence) – alexmac
創建一個將一個url作爲參數的函數,並返回所需結果的承諾。然後遞歸地調用它。 – Bergi