我编写的代码使用 util.promisify 和 async 来读取文件并将其显示在 localhost:3000 上。
但我想在不使用异步和承诺的情况下编写这段代码。
我做了以下尝试。然而,console.log ("running 3000") 被输出,但我的服务器进入了一个无限循环。
如何按计划运行代码?
异步代码(原始)
var http = require('http');
var fs = require('fs');
var util = require('util');
var readFile = util.promisify(fs.readFile);
var app = http.createServer(function(req , res){
res.writeHead(200, {'Content-Type':'text/plain'});
getData().then(data => {
res.write(data);
res.end();
})
});
app.listen(3000);
async function getData(callback) {
console.log("running 3000");
return await readFile('./a.txt');
}
回调代码(重新打包)
var http = require('http');
var fs = require('fs');
var util = require('util');
var app = http.createServer(function(req , res){
res.writeHead(200, {'Content-Type':'text/plain'});
getData(data =>{
res.write(data);
res.end();
})
});
app.listen(3000);
const getData = callback =>{
console.log("running 3000");
fs.readFile('./a.txt', (err, data) => {
if (err) throw err;
callback(data);
)};
}