0
私はnode.jsを学習していますが、問題があります。関数から変数へのデータの取得方法関数から変数へデータを取得する方法
function loadOrInitializeTaskArray(file, cb) {
fs.exists(file, function(exists) {
var tasks = [];
if (exists) {
fs.readFile(file, 'utf8', function(err, data) {
if (err) throw err;
var data = data.toString();
var tasks = JSON.parse(data || '[]');
cb(tasks);
})
} else {
cb([]);
}
})
}
function listTasks(file) {
loadOrInitializeTaskArray(file, function(tasks) {
for (var i in tasks) {
console.log(tasks[i]);
}
})
}
機能listTasks正常に動作しますが、私は、例えばcustomListTasksのために、独自の関数を作成したいと思います:
function customListTasks(file) {
var list = loadOrInitializeTaskArray(file, function(){});
console.log(list);
}
これは私にエラーを返しますが、「未定義」を私に返すリストにCONSOLE.LOGません。このデータをどのようにして変数リストに入れることができますか?
Bluebirdコルーチン関数を使用して、約束を得ることができます。 –
http://stackoverflow.com/questions/5010288/how-to-make-a-function-wait-until-a-callback-has-been-called -using-node-js –
非同期結果を同期して取得することは期待できません。非同期に取得する必要があります(コールバック、約束)。 – trincot