gpt4 book ai didi

javascript - 如何在事件处理程序内执行安全的异步操作,防止不一致?

转载 作者:行者123 更新时间:2023-12-02 23:02:36 25 4
gpt4 key购买 nike

(我不认为这与 How do I make asynchronous calls in an event handler 重复,尽管标题很相似。它也不同于有关禁用按钮的问题,因为可能有很多不同的事件可能导致异步冲突。)

当访问我的网页时,单击按钮或按下某个键时,我希望能够执行异步 Promise 链,例如读取数据库、读取文件或写入日志条目。但这些需要离开事件处理程序/监听器,因此似乎不可能从“then”链末尾的原始处理程序返回值。

这没问题,但是从处理程序同步(即立即)返回的问题是用户可能会单击同一个按钮或再次按下该键,甚至执行不相关的操作,这可能会触发异步冲突操作(假设这些操作不能并行完成)。

我想我想在异步操作正在进行时“关闭”事件系统(也许会超时,以防意外终止失败),但这感觉很危险。这肯定不是正确的做法。

最佳答案

我发现处理此问题的唯一方法是明显(且明确)禁用交互。

一种方法是在所有内容前面放置一个全页半透明模态 div,以防止进一步的用户事件启动可能干扰任何正在进行的后台事件的新进程。

如果您的应用足够小,只有少数元素可能会触发新进程,那么明确禁用所有这些元素可能就足够了。

关于javascript - 如何在事件处理程序内执行安全的异步操作,防止不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57727833/

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