node.js - 在完成另一个功能后尝试执行一个功能,但它似乎不适用于 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();
})
但是,当我查看控制台日志时,它似乎不起作用,控制台中的最后一个输出是分类的输出。我应该怎么做才能使它正常工作?
解决方案
推荐阅读
- ocean - 参考列表和自定义 Petrel 工作步骤
- twig - 在页面过滤器中使用数组变量
- compilation - Intel/Altera Quartus:如何强制编译的构建是最新的以避免重新编译?
- java - Android Canvas drawBitmap 在 Android Oreo 上耗时太长,但在 Android Lollipop 上运行良好
- java - 如何使用 TestData 在 javaml 中创建实例?
- javascript - 如何从 for 循环中的回调内部中断
- c - GCC 8 对浮点转换的隐式 int 的无效结果
- curl - 通过中间服务器卷曲
- asp.net-mvc-5 - 由于格式化,DateTime 客户端验证失败
- ruby - 获取datamapper sinatra中的所有模型名称