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名錄還給我「不確定」。我怎樣才能獲得這個數據到變量列表?
使用藍鳥協同函數和使用,你可以產生承諾 –
http://stackoverflow.com/questions/5010288/how-to-make-a-function-wait-until-a-callback-has-been-called -using-node-js –
您不能期望同步獲得異步結果。你將不得不異步獲取它(回調,承諾)。 – trincot