我一直無法學習來自同步編程語言的回調和承諾。我一直試圖讓.env
文件的結果,這樣的話,我可以在我的應用程序中使用它,而是console.log(envdata)
回報:BlueBird Promises的閱讀結果
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_progressHandler0: undefined,
_promise0: undefined,
_receiver0: undefined,
_settledValue: undefined
}
在我的控制檯。我怎樣才能從文件中獲得正確的結果?
這是我目前的代碼。
'use strict';
var envdata = {};
var path = require('path');
var Promise = require('bluebird');
var fs = Promise.promisifyAll(require('fs'));
module.exports = function(app, options) {
return new Promise(function(resolve, reject){
envdata = getenvdata(options.basedir + path.sep + ".env");
console.log(envdata); //need this to be the data
app.envdata = envdata;
resolve(app);
});
function getenvdata(path){
return fs.readFileAsync(path, 'utf8')
.then(function(data){
data.split("\n").forEach(function(keyvalue) {
var array = keyvalue.split('=');
array[1] && (data[array[0]] = array[1]);
});
return data;
});
}
}
我認爲有承諾和異步調用之間的差異^ @ marvel308 – Albert
@Albert沒有,實際上不是。 – Tomalak
無論如何,我試圖找出如何讀取藍鳥承諾的結果,而不是實際的藍鳥承諾對象 – Albert