0

我有一個Angular服務從一個開放API獲取記錄。 API限制了我一次獲取100條記錄,並且我不知道有多少條記錄要獲取,直到我檢索到第一批。如何在Angular2服務中進行遞歸http調用來預取數據?

API響應的格式如下:

{ 
    "offset": 0, 
    "limit": 100, 
    "total": 140, 
    "count": 100, 
    "results": [] 
} 

我不知道我需要多少個電話要打給API,直到後,我取的第一頁,並從該"total"值響應。

任何想法如何做到這一點?

謝謝!

+0

它是如何限制你,如果你要求101它與100迴應,然後錯誤?這只是錯誤嗎? – Kilmazing

+0

如果您提供的限制> 100,它將以http狀態碼409響應,並返回錯誤。 – Ryan

+0

調用提取服務的組件函數可以簡單地遞歸調用自身。 –

回答

0

不是一個特定的問題,所以沒有(真正的)代碼在這裏。

以任何語言;你可以這樣做: (即調用從接收數據的功能,該功能的getData)

var limit = 100; 
var offset = 0; 

function getData(offset) { 
someHTTPcall('http://...?offset='+offset) 
mapData(response) 
} 

function mapData(result) { 
myData.push(response.results) 
if (myData.length < response.total) { 
    getData(myData.lenght +1) 
} 
} 
相關問題