【问题标题】:Nodejs async setup functionNodejs异步设置功能
【发布时间】:2021-08-05 06:32:48
【问题描述】:

我目前正在从 Nodejs v12 切换到 v14,似乎 v14 不再等待设置功能解决。我将 Nodejs 与 Express 结合使用。我的代码看起来像这样(简化):

setup().then(context => {
    // app setup based on context 

    app.listen(8080)
})

在初始化应用程序的其余部分之前,有没有首选的方法来使用异步设置功能?

setup 函数连接数据库并返回一个 promise,如下所示:

function setup() {
    // This is a postgres library that return a promise
    return db.connect(this.config);
}

在 Node v12 上,它似乎在等待 promise 并在完成后开始监听指定的端口。但是,当我切换到版本 14 时,它不会等待承诺并给出一个干净的退出。

【问题讨论】:

  • 很抱歉,问题中的信息不足,我们无法为您提供帮助。 “不再完成”是什么意思? setup 是什么?你在调试中看到了什么? db 是什么? db.connect 返回什么?
  • 我已经阐述了
  • 尝试加.catch看看有没有失败setup().then(context => app.listen(8080)).catch(err=>console.error(err));
  • 没有错误,唯一不同的是节点版本。在 Node v12 上工作正常,但在 Node v14 上不工作

标签: javascript node.js typescript express


【解决方案1】:

您尝试过使用 async/await 吗?

尝试如下修改函数

async function setup() {
  
  await db.connect(this.config);
  
  app.listen(8080)

}

【讨论】:

  • 也试过这个结构,还是不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2019-01-12
  • 2018-01-15
  • 2019-01-01
  • 2013-04-05
  • 2022-01-24
  • 2020-04-02
相关资源
最近更新 更多