javascript - 返回$.get的结果什么也不返回

标签 javascript jquery

我有一个函数,它将返回 JSON。检查调用函数中返回的数据时发现未定义。

我唯一能想到的是ajax是异步的,它不等待数据返回。因为这可能是第二个警报框在第一个警报之前被触发的唯一原因。

$.get( '/search/s/g/' , { 'q' : query } , function(data) {
    var result = $.parseJSON(data);
    if ( result.length < 10 ) { 
        data2 = extendSearch(query);
        alert("second"); // This got triggered first.
    }
    populateSearchResult(result);
});

function extendSearch(q) {
    $.get('/search/s/f/', { 'q': q }, function(data) { 
         alert("first"); // This got triggered as the second alert box
         return data;
    });
}

现在我该如何解决这个问题?

最佳答案

不返回数据,在 expandSearch 中执行成功回调中需要执行的操作。

function expandSearch(q) {
    $.get('/search/s/f/', { 'q': q }, function(data) { 
         alert("first"); // This got triggered as the second alert box
         // do something with the data here
         // modify dom or w/e
    });
}

关于javascript - 返回$.get的结果什么也不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819395/

相关文章:

php - 如何纠正 mysql php 更新中的错误?

javascript - 我把我的标志放在两条线之间,我想为这两条线制作动画

javascript - d3.js 中图例比例的百分比

javascript - 使用 AJAX 提交所有表单数据

javascript - 如何制作自动图像 slider 。?

javascript - 基于另一个下拉列表启用/禁用下拉列表

javascript - 服务人员显示通知不起作用

javascript - 使用循环清除 svg 多个子项不起作用

即使提交了表单,Jquery 绑定(bind)在 'ajax:success' 、 'ajax:error' 或 'ajax:complete' 上也不会执行

javascript - 下拉菜单 - 与内容碰撞