我们如何使用 jquery 一个接一个地读取多个 json 文件
How can we read multiple json files one after one using jquery
我们可以使用 jQuery.get() 方法一个接一个地读取多个 JSON 文件吗?否则有任何可能的方法可以一个接一个地读取多个 JSON 文件
使用 Jquery.when
var a=$.get(url1);
var b=$.get(url2);
$.when(a,b).done(function(aResult,bResult)
{
console.log(aResult[0]+" "+bResult[0]);
}
在这里,url1 和 url2 返回 JSON 响应,或者您可以将 url1 和 url2 替换为服务器上的 JSON 文件名
我们不需要 JQuery 只有香草 JavaScript (ES6/ES2019)
纯函数式基于承诺的 fetchAll()
它看起来很复杂,但真的很简单。
const fetchAll = files => new Promise((resolve, reject) =>
Promise.all(Object.values(files).map(file => fetch(file)))
.then(responses =>
Promise.all(responses.map(r => r.json()))
.then(jsons =>
resolve(Object.keys(files).reduce((prev, curr, index) =>
!(prev[curr] = jsons[index]) || prev, {}))
))
.catch(err => reject(err))
);
用
fetchAll({
example1: 'http://domainxxxxxxx.com/example1.json',
example2: 'http://domainxxxxxxx.com/example2.json',
}).then(jsons => {
console.log(jsons) // <-- Result here
}).catch(err => {
console.error(err.message);
});
或现代异步/等待方式
const main = async () => {
const [example1, example2] = await fetchAll({
example1: 'http://domainxxxxxxx.com/example1.json',
example2: 'http://domainxxxxxxx.com/example2.json',
});
console.log(example1, example2);
}
main();
这应该有效。它使用 fetch api 和承诺。这是演示链接。这将逐个下载。您可以使用 Promise.all 并简化此代码(如果并发下载正常)。
var files = [
'https://rawgit.com/blessenm/ng-app-kit/master/app/config/dev.json',
'https://rawgit.com/blessenm/ng-app-kit/master/app/config/prod.json'
];
function fetchFiles(files) {
var promise = Promise.resolve();
files.forEach((file) => {
promise = promise
.then(() => fetch(file))
.then(response => response.json());
});
return promise;
}
function startFetching() {
fetchFiles(files).then(function(result) {
//Here fetching is complete
alert(JSON.stringify(result)); // Final json file
alert('Complete');
});
}
相关文章:
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 用PHP读取另一个网站的源代码,并将其作为字符串提供给JavaScript
- 正在读取<p: 选择一个菜单/>在onchange回调中
- 读取一个动态填充的txt文件
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- 如何在jquery中读取Section中的最后一个元素
- 读取纯javascript中的cookie(这是一个对象)
- 我希望joint.js库读取我的JSON并将其显示为一个单元格:rect和circle
- 读取一个txt文件并检查时间
- 是JavaScript(jQuery)和一个处理程序,每次从内存运行或读取
- PHP只读取动态创建的输入数组的第一个值
- 表读取最后一个变量
- 如何读取存储在图像的数据src中的URL,并在另一个img控制器的src中设置该URL onclick
- 在一个循环中读取xml文件的所有节点
- 另一个未捕获的类型错误::无法读取属性'替换'的未定义
- 读取/写入/复制一个 ArrayBuffer 到另一个具有偏移量的 ArrayBuffer
- 使用AJAX读取一个简单的文本文件.打开函数时出现拒绝访问错误
- 为什么我得到“;无法读取属性'obj2'未定义的“;在一个上,而不是在另一个上
- 我如何创建一个读取 xml 或 json 的 Chrome 扩展程序
- 相对路径-为什么我的javascript文件创建一个文件在一个位置,但试图从另一个读取它