首页 > 解决方案 > 如何请求多个 API 数据转换为 json 并做一些事情来匹配单独的 json 文件

问题描述

所以我有 2 个 API 链接,我想从 https://some_url/usershttps://some_url/posts获取一些数据。

我想将 /users 中的一些数据与 /posts 匹配,但我如何同时从两者中获取

我知道,如果我只想从 /users 获取发言权,我会去

   fetch('https://some_url/users')
   .then(function(response){
        return response.json();
   })
   .then(function(Data_users){

       do stuff to Data_users

   }

但是我想同时对 /users 数据和 /posts 数据做一些事情,所以我想从 /users 和 /posts 中获取并像这样在这里操作它们


   .then(function(Data_users, Data_posts){

       do stuff to Data_users and Data_posts

   }

我该怎么做?我需要承诺吗?

抱歉,如果我解释得很糟糕,我对 javascript 很陌生。

标签: javascriptjsonpromisefetch

解决方案


您可以将其存档Promise.all()

var userPromise = fetch('https://some_url/users').then(response => response.json());
var postPromise = fetch('https://some_url/posts').then(response => response.json());

Promise.all([userPromise, postPromise]).then(([Data_users, Data_posts]) => {
    ...
});

最后一个函数中两个变量的括号是必需的,因为Promise.all使用数组调用函数。使用括号,我们可以将数组分解为两个不同的变量。如果没有括号,则需要以下代码:

....then((values) => {
    var Data_users = values[0];
    var Data_posts = values[1];
}

推荐阅读