这个异步应该怎么返回?
import fs from 'fs';
fs.readFile('index.html',function(err,data){
var html = data.toString('utf-8');
var reg = /(<template[\s]*src=["|'])([\w.]+)(["|'][\s]*><\/template>)/ig;
var results = reg.test(html);
if(results){
var finalStr = html.replace(reg, function(){
var importFile = arguments[2];
if(fs.existsSync(importFile)){
//return fs.readFileSync(importFile).toString('utf-8');
fs.readFile(importFile,function(err,data){
var partHtml = data.toString('utf-8');
return partHtml; //怎么返回呢?
});
}else{
return "hello";
}
return 'test'
})
console.log(finalStr)
}
})
6 回复
callback吧 你想用return那就用Promise封装一下吧
外层包个 Promise(resolve => {…}) 然后 resolve(partHtml)
fs.readFileSync 全部可以写成同步的啊,nodejs api操作文件都有同步api,这个代码简直太难看了
异步不能返回
这样加了 还是报错.
const html = fs.readFileSync(‘index.html’,‘utf8’)