如果我在异步HTTP请求的循环中调用下面的代码,我会得到后一个响应。关于我哪里可能出错,有什么建议吗?
注意:这本质上是伪代码。
function successful_request(site) {
console.log('In: ' + site.id);
$scope.$apply(function() { console.log('Out: ' + site.id); }
}
输出:
In: 1
In: 2
In: 3
Out: 3
Out: 3
Out: 3
我希望我在这里讲得有道理。我怀疑这是我如何调用$scope的一个例子$申请,但我不确定我应该采取什么不同的做法。
在我看来,好像您在异步循环范围之外全局声明了变量site
。
当在循环中运行闭包时,这种副作用非常常见,我真的无法从您的示例中判断出来,但您可能需要查看以下链接,看看它是否适用于您的情况。循环中的JavaScript闭包–简单实用的示例