跳到主要内容
CNode

这个异步应该怎么返回?

问答
Ggithub-amazingboy发布于 7 年前最后回复 7 年前
649790
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)

L
linliny#67 年前

const html = fs.readFileSync('index.html','utf8')

2019-08-26 14_33_19-启动.png

这样加了 还是报错.

O
ounana#47 年前

异步不能返回

T
TimLiu1#37 年前

fs.readFileSync 全部可以写成同步的啊,nodejs api操作文件都有同步api,这个代码简直太难看了

W
waitingsong#27 年前

外层包个 Promise(resolve => {....}) 然后 resolve(partHtml)

I
im-here#17 年前

callback吧 你想用return那就用Promise封装一下吧

参与回复

登录后即可参与回复。登录