Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
香草JavaScript当函数完成时,执行一些操作_Javascript - Fatal编程技术网

香草JavaScript当函数完成时,执行一些操作

香草JavaScript当函数完成时,执行一些操作,javascript,Javascript,我正在尝试从我现在运行的jQuery创建一个普通JavaScript函数。我要做的是等待两个函数从两个不同的API请求加载数据。如果两者都是空的,那么我想做一些事情。我现在用JavaScript编写了这两个请求函数,但是我被困在了.when部分。我将如何在JavaScript中创建它 代码现在如下所示: function Request1() { var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://user', tr

我正在尝试从我现在运行的jQuery创建一个普通JavaScript函数。我要做的是等待两个函数从两个不同的API请求加载数据。如果两者都是空的,那么我想做一些事情。我现在用JavaScript编写了这两个请求函数,但是我被困在了.when部分。我将如何在JavaScript中创建它

代码现在如下所示:

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()
也将返回承诺!