Kit*_*ler 4 javascript node.js express async-await
我习惯于接受用户请求、处理它并响应结果。
然而,我有一个 API 端点,它需要对各种数据库、日志记录、电子邮件等进行大约 10 件事,所有这些都是异步的。只有第一个数据库调用需要成功,用户才能获得响应。剩下的可以继续。
问题是整个过程可能需要 10/20 秒,因此当用户只需要在第一个数据库查询(大约 100 毫秒)后得到答案时,他们会等待 10/20 秒。
我基本上需要
我对所有异步调用使用 async wait 并表达为我的 Web 框架。
因为您说过“只有第一个数据库调用需要成功,用户才能获得响应。其余的可以继续。” 我想你已经得到了你需要的东西,所以假设你正在使用 async wait,让我们这样做:
async function requestHandler(req){
await result = firstDatabaseRequestThatIsImportant();
setOfAsyncFunctions(result);
return result;
}
async function setOfAsyncFunctions(result){
asyncFunction1(?????)
asyncFunction2(?????)
}
Run Code Online (Sandbox Code Playgroud)
所以基本上不要使用await,这样setOfAsyncFunctions该函数将在不同的线程中运行,并且您可以立即将结果返回给用户。也许这会对您的问题陈述有所帮助?
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |