2017-09-29 1 views
0

Ich versuche, arr zurückzukehren, wenn Finale() aufgerufen wird ....Wie liest man Daten aus einer Datei, gibt sie an eine andere Funktion weiter und gibt den Rückgabewert der Funktion zurück?

function final(){ 
     var arr; 
     fs.readFile("/my/path/", 'utf8' ,(err, data) => { 
      arr = parsing(data); 
      arr.splice(-1,1); 


     }); 
     return arr; 
    } 

Es undefined hält zurück. Obwohl arr innerhalb der readFile Klammern gibt mir ein Array ...

Das mögliche Duplikat bespricht das Drucken, während ich einen Wert brauche, um woanders zu verwenden. Wie kann ich den Wert arr in einer anderen Funktion/Modul verwenden?

Antwort

0

readFile ist Asynchron-Funktion, die Sie dieses

function final(){ 
     var arr; 
     fs.readFile("/my/path/", 'utf8' ,(err, data) => { 
      arr = parsing(data); 
      arr.splice(-1,1); 
      return arr; 
     }); 

} 
0

tun müssen, oder eine Rückruffunktion letzte Funktion Antwort

function callback(arr) { 
//do something with arr 
} 

function final(callback) { 
    var arr; 
    fs.readFile("/my/path/", 'utf8' ,(err, data) => { 
     arr = parsing(data); 
     arr.splice(-1,1); 
     callback(arr); 
    }); 
} 

Als @Farhan Yassen Pass wird aufgrund der Asynchron nicht korrektes Verhalten führen Natur.

Und auch, können Sie immer synchrone Version des readFile verwenden mit readFileSync

Verwandte Themen