【发布时间】:2021-10-10 00:16:47
【问题描述】:
我有一个 node.js 脚本,它从文件中读取一些 JS 代码,并将其传递给 eval()。将 javascript 传递给 eval 的代码如下:
// read javascript code from file
var outputbuffer = '';
function output(data) {
outputbuffer += data + '\n';
}
eval(javascriptCodeFromFile);
// do stuff with outputbuffer
文件中的javascript代码如下:
var fs = require('fs');
fs.readFile('myfile.txt', function(err, data) {
if (err) {
output('Error reading file');
}
else {
output(data.toString());
}
});
问题是 eval 在文件读取完成之前退出,因为文件读取是异步的。 eval 只是开始读取文件,然后退出,而不是等待文件读取完成。如何让 eval 在退出之前等待回调?我看过承诺,它们看起来很有前途(双关语),但我需要有人引导我朝着正确的方向前进。
【问题讨论】:
-
为什么没有
js代码在.js/ts文件中,只需在需要的地方导入? -
@Muhammad Usman js 代码不是直接来自文件,在这个过程中还有一些其他的东西。我只是说让它更简单,因为它并不重要
标签: javascript node.js asynchronous eval