0

我有这个代码。

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

    }).done(
        function(data) {
            alert(x);
        }
    );
}

doReq();

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

除了管道中的数据之外,有没有办法传递其他变量?

4

1 回答 1

1

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

否则,您将需要第二次延迟,并且您可以使用任何您想要的参数来解决它。

于 2013-06-24T17:10:13.963 回答