Javascript 如何将异步编写的代码更改为回调函数

Javascript 如何将异步编写的代码更改为回调函数,javascript,Javascript,我编写了使用util.promisify和async读取文件并在localhost:3000上显示的代码 但是我想在不使用async和promise的情况下编写此代码 我做了以下尝试。 然而,console.log(“running 3000”)是输出的,但我的服务器进入无限循环 如何按计划运行代码 异步代码(原件) 回调代码(重新打包) 不要使用util.promisify 请使用您的回调,而不仅仅是定义它 做 例如: 如果您不想使用承诺,为什么要使用util.promisify?您已经为

我编写了使用util.promisify和async读取文件并在localhost:3000上显示的代码

但是我想在不使用async和promise的情况下编写此代码

我做了以下尝试。 然而,console.log(“running 3000”)是输出的,但我的服务器进入无限循环

如何按计划运行代码

异步代码(原件)

回调代码(重新打包)

  • 不要使用
    util.promisify
  • 请使用您的
    回调
    ,而不仅仅是定义它
例如:


如果您不想使用承诺,为什么要使用
util.promisify
?您已经为
getData
函数定义了一个
callback
参数……但您从未调用过它!不要在别人给出答案后完全改变你的问题。
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);
  )};
}
// var readFile = util.promisify(fs.readFile);


const getData = callback =>{
  console.log("running 3000");
  fs.readFile('./a.txt', (err, data) => {
      if (err) throw err;
      callback(data);
  };
}