2016-04-18 8 views
0

私はこの機能を構築するが、それは何も返さない:関数の戻り値は何も

function myFunction(index){ 
    var resultat = ""; 
    fs.readFile(__dirname + '/File.xml', function(err, data) { 
     parser.parseString(data, function (err, result) { 
      resultat = result['level1']['level2']['level3'][index]; 
      //console.log(resultat); // works 
     }); 
    }); 
    return resultat;// Return nothing 
    // return 'test' // Works 
} 

はあなたが私を助けることができることを願っています!

+1

'fs.readFile()'操作は* *非同期です。操作が完了するまで、結果は使用できません。 – Pointy

答えて

0

xml呼び出しでリモートXMLを読み込む前に関数が返されます。

試してみてください。

function getItem(index, callback){ 
    var resultat = ""; 
    fs.readFile(__dirname + '/SearchRequest.xml', function(err, data) { 
     parser.parseString(data, function (err, result) { 
      resultat = result['rss']['channel']['item'][index]; 
      //console.log(resultat); // works 
      callback(resultat); 
     }); 
    }); 
} 

var index = 1; 
getItem(index, function(d){ 
    console.log(d); 
});