在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!!")
}
答案 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