如何使 getJSON 代码看起来更干净?
How to make getJSON code cleaner looking?
有没有办法重写下面的代码,使它看起来更干净。也许使用 await
?
我真的不喜欢嵌套函数的想法,但我需要等到我加载了两个 .json 文件,然后我的应用程序才能启动...
知道如何清理它吗?
$.getJSON('myFile1.json', function(data) {
var myFile = data;
$.getJSON('myFile2.json', function(data) {
var myFile2 = data;
// Do stuff.
return 0;
});
return 0;
});
谢谢!
你想要承诺,伙计。
你可以使用 $.when()
var getJson1 = $.getJSON('myFile1.json');
var getJson2 = $.getJSON('myFile2.json');
$.when(getJson1, getJson2).done(function(data1, data2){
...
});
将 getJSON
的 return 值放入一个数组中。将其传递给 Promise.all
。当它解决时(当两个 getJSON
承诺都解决时),它将有一个包含所有数据的数组。
var urls = ["https://api.domainsdb.info/search?query=microsoft", "https://api.domainsdb.info/search?query=google"];
Promise.all([
$.getJSON(urls[0]),
$.getJSON(urls[1])
]).then((data) => console.log({
"Total Microsoft domains": data[0].total,
"Total Google domains": data[1].total,
"Grand total": data[0].total + data[1].total
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
getJSON returns 承诺 https://api.jquery.com/promise/。所以这种事情有效:
var firstPromise = $.getJSON('myFile1.json');
var secondPromise = $.getJSON('myFile2.json');
$.when(firstPromise, secondPromise).done(function(firstData, secondData) {
// do something
});
有没有办法重写下面的代码,使它看起来更干净。也许使用 await
?
我真的不喜欢嵌套函数的想法,但我需要等到我加载了两个 .json 文件,然后我的应用程序才能启动...
知道如何清理它吗?
$.getJSON('myFile1.json', function(data) {
var myFile = data;
$.getJSON('myFile2.json', function(data) {
var myFile2 = data;
// Do stuff.
return 0;
});
return 0;
});
谢谢!
你想要承诺,伙计。
你可以使用 $.when()
var getJson1 = $.getJSON('myFile1.json');
var getJson2 = $.getJSON('myFile2.json');
$.when(getJson1, getJson2).done(function(data1, data2){
...
});
将 getJSON
的 return 值放入一个数组中。将其传递给 Promise.all
。当它解决时(当两个 getJSON
承诺都解决时),它将有一个包含所有数据的数组。
var urls = ["https://api.domainsdb.info/search?query=microsoft", "https://api.domainsdb.info/search?query=google"];
Promise.all([
$.getJSON(urls[0]),
$.getJSON(urls[1])
]).then((data) => console.log({
"Total Microsoft domains": data[0].total,
"Total Google domains": data[1].total,
"Grand total": data[0].total + data[1].total
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
getJSON returns 承诺 https://api.jquery.com/promise/。所以这种事情有效:
var firstPromise = $.getJSON('myFile1.json');
var secondPromise = $.getJSON('myFile2.json');
$.when(firstPromise, secondPromise).done(function(firstData, secondData) {
// do something
});