首页 > 解决方案 > 在完成另一个功能后尝试执行一个功能,但它似乎不适用于 Node Js

问题描述

我试图在完成writeDatabase()后执行classification()

app.post("/classy", (req, res, next) => {

  function classification(){
    return new Promise(resolve => {
      const process2 = spawn('node', ['/home/tiberiu/NodeJsProject/scripts/classifier.js'])
  process2.stdout.on('data', (data1) => {
    console.log(data1.toString())
    resolve();
    })
  })
}

function writeDatabase() {
  var songsData = require('./results.json');
console.log("Songs data: ");
console.log(songsData);
var Song = mongoose.model('Songs1');
Song.find().remove();
for (var i = 0; i < songsData.length; i++) {
new Song(songsData[i]).save();
}
}

//classification().then(()=>writeDatabase());

async function run() {
  await classification();
  writeDatabase();
}
run();

})

但是,当我查看控制台日志时,它似乎不起作用,控制台中的最后一个输出是分类的输出。我应该怎么做才能使它正常工作?

标签: node.jspromise

解决方案


推荐阅读