Angular 6 - вызывать несколько API синхронно - PullRequest
0 голосов
/ 03 января 2019

У меня есть простая функция, которая вызывает API для получения всех категорий историй. Ответ просто так:

{"page":1,"pageSize":1,"totalRecords":39,"nextPageUrl":"http://dkm.services/api/story/categories?SiteId=1c0ad0e3-8c70-4a0c-9dd1-3285d0b243f2&Page=2&PageSize=10","items":[{"id":"96c9219a-b1a1-4dc5-9dbc-021720d71ab0","name":"Đông Phương","url":"http://truyenfull.vn/the-loai/dong-phuong/"}]}

Теперь мне нужно следовать свойству nextPageUrl, чтобы вызвать следующий вызов, пока не будут получены все категории (nextPageUrl = null) Функция вернет массив категории, затем она будет вызвана в другом компоненте моего приложения.

Как я могу связать это несколько вызовов?

Спасибо всем.

1 Ответ

0 голосов
/ 03 января 2019

Тебе нужно рекурсивное обещание, что-то вроде этого ...

function getCategories(nextPageUrl, categories) {
  return getCategoriesService(nextPageUrl)
    .then((res) => {
      if(res.nextPageUrl) {
        categories.push(res.categories)
        return getCategories(res.nextPageUrl, categories);
      } 
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...