我确信一定有什么东西可以为我做到这一点。
我有一个显示项目列表的网络用户界面。如果你点击一个项目,会发生两件事: UI 将使用立即可用的信息进行更新,然后将发出异步请求以获取更多信息。完成后,它将更新 UI 的另一部分。很简单,对吧?
但是...如果我想限制服务器请求怎么办?如果我在获取该信息时单击另一个项目,并最终出现竞争条件,最终可能会在屏幕上显示错误的信息,该怎么办?如果通过单击另一个项目,我希望有机会取消受到严格限制的获取,该怎么办?
我很清楚执行此操作的代码会是什么样子,但考虑到所有的边缘情况,很高兴知道是否已经有一些东西了?
最佳答案
通常您会使用Semaphores为此,如果您能够在处理信号量中新进程调用的异步信息期间检查信号量,并且它来自同一源。您可能会终止实际的异步进程并启动信号量中的下一个。
关于javascript - 受限制、可取消的异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379548/