首页 > 解决方案 > 如何在“等待”请求完成后立即执行功能?

问题描述

关于 Promises 和 async 等的整件事让我发疯了。每当我连接到数据库时,我只需要运行一个函数。(此代码工作正常,但我不知道何时await完成。帮助!

async function connectToDB() {
    console.log("Connecting to database...");
    database = await pool.connect();
    // I want to run some function only after the connection has been made.
}

我正在使用 node.js 和 postgreSQL 作为数据库管理器。

标签: javascriptnode.jsasynchronouspromiseasync-await

解决方案


异步函数返回 aPromise并且当您await使用异步函数时,您表示脚本在该函数完成之前不应继续

您可以替换// I want to run some function only after the connection has been made.为您的代码,并且该代码只会在pool.connect()完成后运行。

您也可以await connectToDb()将其设为异步函数。

await connectToDb();
// other code that is run immediately after connectToDb finishes 

// --- OR ---

connectToDb().then(() => { 
    // other code that is run immediately after connectToDb finishes 
});

推荐阅读