我的地图功能是否总是先运行

时间:2016-10-14 11:25:59

标签: javascript

在if语句运行之前,map函数是否总是运行完毕?我想确保在if语句运行之前总是添加数组中的元素。在if语句启动之前,地图函数是否有一段时间没有完成运行,因此if语句不会获得add变量的真值?

var arr = [ '33.3%', '33.3%', '33.3%' ];
var add = 0;

arr.map(function(elem){
    add += parseInt(parseFloat(elem)*10000)
});

if (add <= 1001000 && add >= 999000) {
    console.log("passed!!")
}

2 个答案:

答案 0 :(得分:0)

是。除非您有异步请求或WebWorkers等多线程操作,否则您的代码是同步的,即它按严格的顺序执行。

答案 1 :(得分:0)

Array.prototype.map of javascript is synchronous,但如果您想要async行为,可以使用nodejs async module

NodeJS Async地图

var async = require('async');

var arr = ['1','2'];
async.map(arr, getInfo, function (e, r) {
  console.log(r);
});

function getInfo(name, callback) {
  setTimeout(function() {
    callback(null, name + 'new');
  }, 1000);
}

http://code.runnable.com/UyR-6c2DZZ4SmfSh/async-map-example-for-node-js