javascript - 如何请求多个 API 数据转换为 json 并做一些事情来匹配单独的 json 文件
问题描述
所以我有 2 个 API 链接,我想从 https://some_url/users和https://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 很陌生。
解决方案
您可以将其存档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];
}
推荐阅读
- android - Ionic 2+:无法粘贴到 Android 设备上的离子输入中
- hibernate - 如何在休眠中一次插入多条记录
- javascript - 获取 ReferenceError:未定义提取
- ionic2 - 如何在 ionic 2 中实现基于令牌的身份验证
- c - 如何使用 exit(0) 关闭子进程
- swift - 加载 UI 时自动布局
- c++ - Cereal/C++ 11 - 如何指定反序列化的可选参数
- css - 素材 css 按钮切断图标
- python - 随机森林分类器 Python:ValueError:使用序列设置数组元素
- android - 如何让右上角的图标打开新活动而不是显示项目?