函数内的两个回调函数未同步调用

Two callback functions inside a function not called synchronously

本文关键字:函数 回调 同步 调用 两个      更新时间:2023-09-26
    function sample() {
        var callback_1 = request1(function(response) {
            var Name = response.name;
        });

        var callback_2 = request2(function(response_1) {
                if (response_1.name === Name) {
                    // do something      
                });
        }
}

我有两个如上所示的回调函数,callback_1 & callback_2 从服务请求 JSON。

callback_2callback_1之前调用,变量 Name 显示为未定义。非常感谢任何帮助,

如何让callback_1在callback_2之前执行,以便变量 Name 不是未定义的。

试试这个:

function sample() {
    var callback_1 = request1(function(response) {
        var Name = response.name;
        var callback_2 = request2(function(response_1) {
            if (response_1.name === Name) {
                // do something      
            }
        });
    });
}
jQuery ajax

请求返回一个延迟对象(假设 request1 和 request2 是某种 ajax 调用(。 看看 http://api.jquery.com/category/deferred-object。
您可以使用类似以下内容的内容:

function sample() {
    var Name;
    var callback_1 = request1(function(response) {
        Name = response.name;
    });

    callback_1.then(
        callback_2 = request2(function(response_1) {
            if (response_1.name === Name) {
                // do something      
            };
        })
    );
}