jquery推迟传递链

时间:2013-06-24 16:54:42

标签: javascript jquery

我有这段代码。

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

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

doReq();

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

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

1 个答案:

答案 0 :(得分:1)

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

否则,你需要第二个延期,你可以用你想要的任何参数解决它。