Angular 6-同步调用多个API

时间:2019-01-03 13:38:28

标签: api asynchronous angular6

我有一个简单的函数,可以调用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 :(得分:0)

您需要递归承诺,像这样...

function getCategories(nextPageUrl, categories) {
  return getCategoriesService(nextPageUrl)
    .then((res) => {
      if(res.nextPageUrl) {
        categories.push(res.categories)
        return getCategories(res.nextPageUrl, categories);
      } 
    });
}