我有这段代码。
function doReq() {
return $.get('http://localhost:5000/fun/test.php').done(
function(data) {
var x = data + "uui";
}).done(
function(data) {
alert(x);
}
);
}
doReq();
x未定义,因为它超出了范围。
除了管道中的数据之外,还有办法传递其他变量吗?
答案 0 :(得分:1)
不使用相同的延迟对象,因为在这种情况下,您无法控制传递给resolveWith()
的参数。但是,回调将按照定义的顺序运行,因此您可以在函数的顶部定义var x
,并且可以在两个回调的范围内访问它(并且这些函数将按顺序操作变量)。
否则,你需要第二个延期,你可以用你想要的任何参数解决它。