Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery延迟传递链_Javascript_Jquery - Fatal编程技术网

Javascript jquery延迟传递链

Javascript jquery延迟传递链,javascript,jquery,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未定义,因为它超出范围

我有这个密码

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
,并且可以在两个回调的作用域中访问它(这些函数将按顺序操作变量)


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

正如您在问题中所暗示的,请查看jquery:Duplicate of中的deferred()对象?downvoter是否愿意解释,以便我可以改进此答案?