gpt4 book ai didi

javascript - API 端点在不等待 promise 的情况下返回有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-02 22:10:29 26 4
gpt4 key购买 nike

为了让快速端点更快地返回给调用者,调用异步任务是否合理,但如果调用者不需要确认,则在返回之前不等待它?

如果异步任务失败,这显然会限制错误处理和重试选项,但假设您不关心这一点,它确实允许快速 API 调用更快地完成(假设等待异步任务在语义上没有意义) API 调用)

此方法与通过 API 请求调用的其他 Web 后台作业方法相比如何?

最佳答案

有时非常合适,有时则不合适。这实际上取决于具体的 API 操作、客户端的期望、客户端可能的使用以及 API 的文档记录方式。

例如,核心数据库操作永远不会这样做,因为显然客户端通常需要知道数据库操作是否成功。

但是,一个与广告相关的 API 只是收集跟踪数据并将其存储起来以供以后使用,可能有一个客户端无论如何都会忽略 API 调用的任何返回,并且如果 HTTP连接可以尽快关闭(无需等待某些存储提交完成)。此外,如果在某些异常情况发生时丢失了一些此类数据,也没什么大不了的,而且客户端也不会做任何不同的事情。因此,如果您确定客户端不需要操作的最终状态,并且在异步操作完成之前结束请求具有规模或性能优势,那么它可能是完全合适的。

在另一个示例中,假设您有一个写入队列,您将内存中的 N 个日志项排队写入磁盘,然后再将它们全部写入磁盘,因为这会显着提高磁盘 I/O 的可扩展性和性能。在这种情况下,直到其他客户端将来请求队列达到触发实际物理写入的特定大小时,才会对磁盘进行最终写入。如果要等到最终写入发生才能返回成功的 API 响应,这对主机 API 服务器(甚至可能是客户端)来说将是一个重大损失。

关于javascript - API 端点在不等待 promise 的情况下返回有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572518/

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