基于AJax的if语句返回

时间:2018-08-24 14:09:24

标签: javascript ajax

我有一个简单的Ajax请求,它根据结果返回true或false,

function myRequest(){
    $.ajax({
         url: "/",
         method: "GET",
         contentType: "application/json",
         dataType: 'json',
    }).done(function (data) {
         if (data['code'] !== "success") {
              return false;
         }
         else {
              return true;

    }}).fail(function (xhr, textStatus, errorThrown) {
              return false;
    });
}

if(myRequest()){
//do someting
}

为if语句执行myRequest()时,它不会等待Ajax结果,并且永远不会验证。 我在这里阅读了诺言,我尝试过,但是仍然是同样的问题。

Ty!

[编辑]

因此,我会听从您的答复,然后重做承诺。效果更好:

function myRequest(){
   return new Promise((resolve, reject) =>{
        $.ajax({
             url: "/",
             method: "GET",
             contentType: "application/json",
             dataType: 'json',
        }).done(function (data) {
             if (data['code'] !== "success") {
                  resolve(false);
             }
             else {
                  resolve(true);

        }}).fail(function (xhr, textStatus, errorThrown) {
                  rejected(errorThrown);
        });
      });
    }

myRequest().then(function (val) {
    if(val){
       return true;
    }
});

0 个答案:

没有答案