等待函数返回

时间:2014-11-25 12:19:47

标签: javascript jquery ajax

我已经得到了那段代码:

var result;

$.when(result=make_req("GET", "ajax.php?request=opendiv", true, null, null)).done(alert(result));

你能告诉我,为什么警报显示' undefined'?

make_req()进行一些ajax调用,它正常工作,当我单独调用它时返回好的值。

我想将make_req的结果存储在变量' result'然后使用它。

2 个答案:

答案 0 :(得分:2)

您正在立即执行提醒,但您并未等待结果

你必须引用一个函数,而不是调用它,并且在函数中添加括号将调用它,在这种情况下,你可以使用匿名函数,并在其中调用alert

$.when( make_req("GET", "ajax.php?request=opendiv", true, null, null) )
   .done(function(result) {
        alert(result);
});

当然,make_req()必须返回延期承诺!

答案 1 :(得分:0)

因为done()期望将回调函数作为唯一参数传递,而您传递的返回值为alert。你需要:

.done(function(result) { alert(result); });