如何在jQuery中使$ .get()函数同步?

时间:2017-05-25 04:50:32

标签: javascript jquery

我想在我的函数中使$ .get()方法同步。在ajax aysnc : false帮助我,现在我如何对$.get()

做同样的事情
var ifsc_code = $('#ifsc-code').val();
var api_url = 'http://api.techm.co.in/api/v1/ifsc/'+ifsc_code;
$.get(api_url, function(data, status){
//console.log(data.status);

var status = data.status;


  if (data.status == "success") {

      $.each(data,function(key,value){
       var address = value.BANK+", " + value.BRANCH+", " + value.ADDRESS ;
        $('.bank-details').removeClass('no-ifsc').text(address);
        });
        var res = "true";
        alert('inside checkIfsc true');
        return res;
        }

        else if (data.status == "failure") {
         $('.bank-details').addClass('no-ifsc').text(data.message);
         var res = "false";
         alert('inside checkIfsc false');
         return res;
        }  

或者还有其他方法可以做同样的事吗?

3 个答案:

答案 0 :(得分:5)

$.get也接受这样的参数

$.get({
  url: url,// mandatory
  data: data,
  success: success,
  dataType: dataType,
  async:false // to make it synchronous
})

答案 1 :(得分:3)

虽然已经回答:

$.ajax({
  method: 'GET',
  async: false
});

我想警告你:

  • 阻止javascript执行,并可能因此锁定网页(没有按钮工作等等,看起来你的页面在ajax调用期间挂起)
  • 使用同步调用会发出控制台警告。

Javascript是基于事件驱动设计构建的。当ajax / get调用完成时,你也可以触发一个自定义的命名事件(在事件数据中包含数据结果)并让后续动作监听这个事件。

例如:

$(form).on('submit',function(){
   var formEl = this;
   $.get({...}).success(function(data){
     var event = new Event('data-submitted');
     event.data = data; 
     formEl.dispatchEvent(event);
   })
});
$(form).on('data-submitted',function(event){
  var data = event.data;
  // you can handle the post ajax request event here.
});

答案 2 :(得分:1)

添加对象参数

$.get({
url: 'your-url',
async:false
});