-1
沒有得到如何得到執行下面的代碼返回內容...不能從承諾
// readFile.js
const fs = require('fs');
var readFile = function readFile(fileName){
return new Promise((resolve, reject)=>{
fs.readFile(fileName, {encoding: 'utf-8'}, (err, contents)=>{
if(err){
reject(err);
}
resolve(contents);
});
});
};
module.exports.readFile = readFile;
//play.js
const {readFile} = require('./readFile');
var getText = function getTextFromFile(){
readFile('readMe.txt').then((contents)=>{
return contents;
}).catch((err)=>{
console.log(err);
});
};
module.exports.getText = getText;
//someFile.js
const {getText} = require('./play.js');
var result = getText();
console.log(result);
當我執行someFile.js,它打印不確定的。它應該打印內容,因爲play.js文件中的then塊將僅在異步任務即從文件讀取內容結束時執行。使用上面的代碼,如何將內容返回到其他文件,例如從play.js到someFile.js?
你正試圖從同步返回一個值一個承諾。這不可能。只需從'getText'返回Promise,然後在'someFile.js'中使用'.then()'。 – cubrr
是啊,修好了@cubrr謝謝 –