我知道这听起来像是以前被问过的东西,但是在我所有的狩猎中,我找不到任何与我正在寻找的东西相匹配的东西。
我正在开发一个非常依赖 Ajax 的项目。我正在使用 jQuery,但即使它的代码流线型优美,但当我得到它的代码完全相同时,它仍然很混乱,除了一个单一的命令通过该data
字段。
所以我尝试在处理函数中设置它,如下所示:
function _call(task, opts, async) {
if(typeof async !== "boolean") { async = true; }
opts = $.extend({}, opts, options);
$.ajax({
url: "myphpfile.php",
dataType:"JSON",
type:"POST",
async:async,
data: { task: task, opts: opts }
}).done(function(data) { return data; });
}
对于那些仔细阅读的人,您会注意到
options
示例中没有定义的 var, 。它实际上已被分配,只是为了清楚起见被省略了。
我开始意识到这不起作用,因为即使它设置为async: false
,代码在调用之后仍然继续_call(...)
,因此没有及时得到结果。我尝试了一些不同的变体,包括将匿名函数传递给处理程序,然后将其用作.done()
函数,但它不会与外部变量交互,从而违背了目的。
我正在寻找的只是一个可以让我使用它的系统:
var returnedData = _call("thisismytask");
var returnedDataWithOptions = _call("thisisanothertask", {'option': 'option1'});
我真的希望这是可能的。我相信它会是,因为函数的主要目的是消除对不必要重复代码的需要。
谢谢。:)