Сервисная последовательность вызовов oData - PullRequest
0 голосов
/ 16 апреля 2019

Как сделать последовательные асинхронные запросы в виде фрагментов из 50 записей в службу oData.

 (function () {
    // Multiple api calls
    var oData = "http://localhost:8888/Clinics";
    fetch(oData)
        .then(response => {
            return response.json();
        }).then(data => {
            var nextLink = data['@@odata.nextLink'];
            console.log(data);

        }).catch(err => {
            console.log(err);
        });


})();

Я хотел бы сделать следующий вызов после того, как я восстановлю предыдущие данные.Идея состоит в том, чтобы отображать данные по частям.Мой код возвращает первые 50 записей и следующая ссылка успешна.Я хотел бы знать, как я могу эффективно делать следующие последовательные запросы.

1 Ответ

0 голосов
/ 18 апреля 2019

Мне удается добиться результата, вызывая функцию рекурсивно. Я уверен, что есть более эффективный способ достижения тех же результатов.

function oDataCall(nextLink) {
    oData = nextLink;
        fetch(oData)
            .then(response => {
                return response.json();                   
            }).then(data => {
                console.log(data);
                nextDataLink = data['@@odata.nextLink'];
                if (typeof nextDataLink === "undefined") {
                    eod = true;
                } else {
                    console.log(nextDataLink);
                    oDataCall(nextDataLink);
                }                      

            }).catch(err => {
                console.log("error: ", err);
            });       

}      

oDataCall("http://localhost:8888/Clinics");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...