这里的直接问题是,
j和
keyword变量在调用回调之前会不断变化。
一个简单的解决方案是在闭包中保护此变量:
for (var j=0; j<keywords.length; j++) { (function(j){ var keyword = keywords[j]; ... })(j);}当您仅使用简单数组时,还可以通过
forEach以下方式使用闭包:
keywords.forEach(function(keyword, j){ ...});为了处理这种异步问题,您现在应该深入研究诺言,以更清晰(且缩进程度更小)的方式来构造代码。引言。



