微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 从jQuery执行同步Ajax请求?

我知道这听起来像以前被问过的东西,但是对于我所有的狩猎,我找不到任何与我正在寻找的东西相匹配的东西.

我正在开发一个基于Ajax的项目.我正在使用jQuery,但即使它使用精美的简化代码,当我已经达到代码完全相同时,它仍然很混乱,除了通过数据字段传递的单个命令.

所以我尝试在处理函数中设置它,如下所示:

function _call(task,opts,async) {
    if(typeof async !== "boolean") { async = true; }
    opts = $.extend({},options);
    $.ajax({
        url: "myPHPfile.PHP",dataType:"JSON",type:"POST",async:async,data: { task: task,opts: opts }
    }).done(function(data) { return data; });
}

For those who read through,you’ll notice that there’s a var,
options,that hasn’t been defined in the example. It has actually
been assigned,it’s just been omitted for clarity purposes.

我开始意识到这不起作用,因为即使它被设置为async:false,代码仍然在调用_call(…)后继续,因此无法及时获得结果.我尝试了一些不同的变体,包括将匿名函数传递给处理程序,然后将其用作.done()函数,但它不会与外部变量交互,从而无法实现目的.

我正在寻找的是一个让我使用它的系统:

var returnedData = _call("thisismytask");
var returnedDataWithOptions = _call("thisisanothertask",{'option': 'option1'});

我真的希望这是可能的.我确信它会是,因为函数的主要目的是消除不必要的重复代码的需要.

谢谢.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐