2016-04-02 29 views
-1

İşte bir örnek kod var:(Node.js) mongoDB işlevindeki genel değişken nasıl değiştirilir?

//IF I JUST TRY TO CONNECT TO MONGODB 
function ConnectToMongo(db) { 
    myVar = false; 
    db.collection("MyCollection", function(error,collection) { 
     myVar = true; 
    }); 
    console.log(myVar); // RETURN TRUE 
} 

//IF I TRY TO INSERT DATA 
function InsertDataOnMongoDB(db) { 
    myVar = false; 
    db.collection("MyCollection", function(error,collection) { 
     collection.insert(data, function(error,result){ 
      myVar = true; 
     }); 
    }); 
    return myVar; // RETURNS FALSE!! 
} 

nasıl son satır satır yürütebileceği collection.insert işlevi biter sonra "myVar dönüş"? Bu durumda doğru geri dönmem gerekiyor.

Teşekkür ederiz!

cevap

2

false görüntüleniyor, çünkü bu iki işlev console.log'dan önce eşzamansız. Bu nedenle console.log yürütülürken db.collection ve collection.insert hala yürürlükte iken, bu iki işlem bittiğinde myVar = true; başlar.

db.collection("MyCollection", function(error, collection){ 
    collection.insert(data, function(error, result){ 
     myVar = true; 
     console.log(myVar); 
    }); 
}); 
+1

Benden haha ​​daha hızlıydı: Eğer myVar = true;

Bu arada sonra console.log düz eklemek zorunda "doğru" görmek için

! –

+0

Haha! Kolaydı: P – boxHiccup

İlgili konular