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是否愿意解释,以便我可以改进此答案?