香草JavaScript当函数完成时,执行一些操作
我正在尝试从我现在运行的jQuery创建一个普通JavaScript函数。我要做的是等待两个函数从两个不同的API请求加载数据。如果两者都是空的,那么我想做一些事情。我现在用JavaScript编写了这两个请求函数,但是我被困在了.when部分。我将如何在JavaScript中创建它 代码现在如下所示:香草JavaScript当函数完成时,执行一些操作,javascript,Javascript,我正在尝试从我现在运行的jQuery创建一个普通JavaScript函数。我要做的是等待两个函数从两个不同的API请求加载数据。如果两者都是空的,那么我想做一些事情。我现在用JavaScript编写了这两个请求函数,但是我被困在了.when部分。我将如何在JavaScript中创建它 代码现在如下所示: function Request1() { var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://user', tr
function Request1() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://user', true);
xhr.send();
xhr.onreadystatechange = processRequest;
function processRequest(e) {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = JSON.parse(xhr.responseText);
ResultData1 = data;
}
};
return (ResultData1)
}
function Request2() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://gameOrder', true);
xhr.send();
xhr.onreadystatechange = processRequest;
function processRequest(e) {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = JSON.parse(xhr.responseText);
ResultData2 = data;
}
};
return (ResultData2)
}
$.when(Request1(), Request2()).done(function (R1, R2) {
if (ResultData1.length == 0 && ResultData2.length == 0) {
// Do stuff here all works
}
});
如何编写相同的使用您可以将请求包装在一个文件中,并使用等待所有请求完成
函数请求(url){
var xhr=new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.send();
返回新承诺(功能(解决、拒绝){
xhr.onreadystatechange=函数(e){
如果(xhr.readyState==4&&xhr.status==200){
var data=JSON.parse(xhr.responseText);
解析(数据);
}else if(xhr.readyState==4){
拒绝();
}
};
});
}
我保证([
请求('https://user'),
请求('https://gameOrder')
]).然后(函数(结果){
var r1=结果[0];
var r2=结果[1];
console.log('Done');
如果(r1.length==0&&r2.length==0){
//做事
console.log('Done');
}
}).catch(函数(){
console.log('Error');
});代码>看一看。如果您可以使用本机承诺,请这样做,因为JQuery通过$实现承诺。when()
不符合承诺规范。.json()
也将返回承诺!