gpt4 book ai didi

javascript - Nodejs : execute some instructions in an asynchronous way

转载 作者:行者123 更新时间:2023-12-03 02:46:03 25 4
gpt4 key购买 nike

我想在 app.js 中先执行 inst1,再执行 inst2:

// config/config.js
const readline = require('readline');

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

module.exports= function() {
console.log("config.js function");
rl.question('Run in production environnement (Y|N) ?', (answer) => {
if(answer === "Y")
process.env.NODE_ENV = 'prod';
else
process.env.NODE_ENV = 'dev';
rl.close();

});

}


//app.js
const express = require('express');
const app=express();

// inst 1
require('./config/config')();
// inst 2
app.listen(port,()=>{
console.log(`server started on port ${port}`);
});

正如您在这里看到的,我在 config.js 中的函数等待读取控制台输入。所以我希望 app.listen(..) 等待,直到上一条指令(即我的函数)结束。

我该如何继续?

最佳答案

promise 你的第一个功能:

module.exports = new Promise(res => {
console.log("config.js function");
rl.question('Run in production environnement (Y|N) ?', res);
}).then(answer => {
process.env.NODE_ENV = "Y" ? 'prod' : 'dev';
rl.close();
});

所以你可以在 app.js 中执行此操作:

const express = require('express');
const app = express();

(async function(){
await require('./config/config');

app.listen(port, () => {
console.log(`server started on port ${port}`);
});
})();

关于javascript - Nodejs : execute some instructions in an asynchronous way,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48086057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com