2016-10-14 3 views
0

Wird die Kartenfunktion immer ausgeführt, bevor die if-Anweisung ausgeführt wird? Ich möchte sicherstellen, dass die Elemente im Array immer vor der Ausführung der if-Anweisung zusammengeführt werden. Wird es jemals eine Zeit geben, in der die Map-Funktion nicht beendet wird, bevor die if-Anweisung gestartet wird, so dass die if-Anweisung nicht den wahren Wert der add-Variablen erhält?Wird meine Kartenfunktion immer zuerst ausgeführt

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

Ja, wird die Map-Funktion immer zuerst beenden, wie Javascript, Single-Threaded ist, und die gesamte Code ist synchron – adeneo

+0

Tipp: Wenn es ein synchroner * * Rückruf es wird ** immer ** zuerst fertig sein. Wenn es sich um einen * asynchronen * Rückruf handelt, wird ** ** ** später immer beendet. Es ist kein Rennen, es gibt Logik. – deceze

Antwort

0

Ja. Wenn Sie keine asynchronen Anforderungen oder Multithread-Operationen wie WebWorker haben, ist Ihr Code synchron, d. H. Er wird in strikter Reihenfolge ausgeführt.

+1

Soll das nicht ein Kommentar sein? – Rajesh

+0

Nein - es ist die Antwort auf die Frage. – Utkanos

+0

'setTimeout' ist synchron ... ?! Es ist nicht multi-threaded, und es ist keine "Anfrage" ... – deceze

0

Array.prototype.map of javascript is synchronous, aber wenn Sie ein async Verhalten möchten, können Sie nodejs async module verwenden.

NodeJS Async Karte

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

+1

'async.map' ist auch" von Javascript ". Wenn Sie speziell "Array.prototype.map" meinen, nennen Sie es bitte mit diesem Namen. – Bergi

+0

@Bergi: Ich meinte deinen Kommentar, danke verändert., – Thalaivar

Verwandte Themen