我有这个功能:
for (i=0; i < toTranslateArray.length; i++)
{
(function(i)
{
getTranslation(toTranslateArray[i],function(callback_result)
{
trans += callback_result;
});
})(i);
}
// code using last value of trans
我需要使用trans的最后一个值。我已经看到了很多例子,但是我无法使它工作。另一个与我的问题相同的答案:链接
这是处理异步循环的一种非常标准的方法(另请参见循环内的JavaScript闭合-简单的实际示例):
var results = [];
for (var count=0; count<toTranslateArray.length; count++) (function(i) {
getTranslation(toTranslateArray[count], function(res) {
results[i] = res;
if (! --count) { // when all results are settled (count is back to zero)
var trans = results.join("");
// code using trans
}
});
})(count);
请注意,这仅在数组中至少有一项时才执行代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句