比方說,我有一個包含某些承諾的文件,按順序執行時,準備輸入文件input.txt
。只有在某些承諾解決後才能導入/導出
// prepareInput.js
var step1 = function() {
var promise = new Promise(function(resolve, reject) {
...
});
return promise;
};
var step2 = function() {
var promise = new Promise(function(resolve, reject) {
...
});
return promise;
};
var step3 = function() {
var promise = new Promise(function(resolve, reject) {
...
});
return promise;
};
step1().then(step2).then(step3);
exports.fileName = "input.txt";
如果我運行node prepareInput.js
,行step1().then(step2).then(step3)
被執行,並創建文件。
我該如何改變這種情況,以便其他文件試圖從此模塊檢索fileName
時,step1().then(step2).then(step3);
在fileName被暴露之前運行並完成?沿着線的東西:
// prepareInput.js
...
exports.fileName =
step1().then(step2).then(step3).then(function() {
return "input.txt";
});
// main.js
var prepareInput = require("./prepareInput");
var inputFileName = require(prepareInput.fileName);
的Node.js這裏初學者;事先道歉,如果我的方法使得完全沒有意義... :)
爲什麼不'要求(」 ./ prepareInput')。fileName.then(function(inputFileName){...})'? –
我的意思是一旦你的代碼被異步效應「感染」,你無法擺脫它,所有使用代碼的東西都變成異步。 –
什麼是'first()'..? – Redu