jquery推迟了传递链

jquery deferred passing down the chain

本文关键字:推迟 jquery      更新时间:2023-09-26

我有这段代码。

function doReq() {
    return $.get('http://localhost:5000/fun/test.php').done(
        function(data) {
            var x = data + "uui";
    }).done(
        function(data) {
            alert(x);
        }
    );
}
doReq();

x是未定义的,因为它超出了范围。

除了在管道中传递数据之外,还有什么方法可以传递额外的变量吗?

不使用相同的延迟对象,因为在这种情况下,您无法控制传递给resolveWith()的参数。但是,回调将按定义的顺序运行,因此您可以在函数的顶部定义var x,并且它在两个回调的范围内都可以访问(这些函数将按顺序操作变量)。

否则,你需要推迟第二次,你可以用任何你想要的论据来解决它。