循环中执行setTimeout代码

方法一:

(function () { var arr = [100, 200, 300, 400, 500]; for (var i = 0; i < arr.length; i++) { (function (i) { setTimeout(function () { console.log(i + "----------" + i * Math.random()); }, arr[i] * Math.random()); })(i); } }());
方法二:
var arr = [100, 200, 300, 400, 500]; (function (i, len, count, callback) { for (; i < len; ++i) { (function (i) { callback(arr[i]); }(i)); } }(0, arr.length, 0, function (param) { setTimeout(function () { console.log(param + "----------" + param * Math.random()); }, param); })); 方法三: var arr = [100, 200, 300, 400, 500]; (function next(i, len, callback) { if (i < len) { callback(arr[i]); next(i + 1, len, callback); } }(0, arr.length, function (param) { setTimeout(function () { console.log(param + "----------" + param * Math.random()); }, param); }));

循环中执行setTimeout代码,1,2为并行,不保证执行顺序,效率高

原文地址:https://www.cnblogs.com/KruceCoder/p/6556142.html