Angular 6 - 同步调用多个API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular 6 - 同步调用多个API相关的知识,希望对你有一定的参考价值。

我有一个简单的函数调用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)该函数将返回一个类别数组,然后它将在我的应用程序中的另一个组件中调用。

如何链接这多个电话?

谢谢你们。

答案

你需要递归的承诺,像这样......

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

以上是关于Angular 6 - 同步调用多个API的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 Async-await 不适用于 http 请求

Angular 6 调用 localhost API

(Angular 6) Angular Universal - 不等待内容 API 调用

同步调用多个API并立即显示结果

如何在 Angular 6 中优化注销?

如何使用 RxJS 以时间间隔调用多个依赖 api 调用