等待从函数返回

Wait for return from function

本文关键字:返回 函数 等待      更新时间:2023-09-26

我有那段代码:

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

你能告诉我,为什么警报显示"未定义"吗?

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

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

您正在立即执行警报,而不是在等待结果

你必须引用一个函数,而不是调用它,将

括号添加到函数中将调用它,在这种情况下,你可以改用匿名函数,并在其中调用 alert。

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

当然,make_req()必须回报一个延期的承诺!

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

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