我有一个通过 url 参数收集信息的节点/快速路由。我使用这些参数来启动一个单独的函数,该函数需要几秒钟的时间。我正在尝试 async/await 等待函数返回数据,但路由逻辑只是向前推进,而不是等待任何东西。
这是语法/结构问题吗?欢迎任何提示,因为我似乎碰壁了。谢谢!
app.get('/testlogin', (req, res) => {
(async () => {
// This needs to wait until loginToApp returns data but it does not
await loginToApp(req.query.u, req.query.p)
.then((data) => {
console.log('from testlogin route. This should print after loginToApp');
console.log(data); // the returned data
});
})();
});
async function loginToApp(user, pwd) {
(async () => {
setTimeout(() => {
const data = { temp: 1, rtemp: 2 };
console.log('from loginToApp');
console.log(data);
return data;
}, 2000);
})();
}
Run Code Online (Sandbox Code Playgroud)