我有这段代码。
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
,并且它在两个回调的范围内都可以访问(这些函数将按顺序操作变量)。
否则,你需要推迟第二次,你可以用任何你想要的论据来解决它。