gpt4 book ai didi

javascript - 如何中止 JavaScript 异步函数?

转载 作者:行者123 更新时间:2023-11-29 19:40:41 26 4
gpt4 key购买 nike

例如,您有一个网络音乐播放器应用。当用户点击播放按钮时,会触发一个功能,寻找 MP3 数据,设置播放器等等,但随后用户改变主意并点击另一个轨道上的播放。有没有办法完全取消以前的功能?我知道你可以中止 XHRequests,但我的意思是像整个函数一样。也许是 JS Promises?

最佳答案

在 javascript 中,同步函数将运行完成。它不会被其他用户操作打断。因此,在您的场景中,如果某个函数触发并正在设置播放器,则该函数将在处理下一个用户事件之前运行完成。所以,你不能在 javascript 中中止一个同步函数,而且无论如何也没有办法,因为(除了 web worker,这不是我们在这里讨论的内容),javascript 是单线程的,所以只要函数正在运行,它将运行完成并且不会处理其他用户事件。

但是,如果该函数中有某种异步操作(例如通过 ajax 加载某些内容或播放器加载音乐文件),那么该异步操作是否可以中止完全取决于具体的支持该操作 - 没有通用中止。为了让我们帮助您处理异步细节,您需要公开您的实际代码,以便我们了解您在做什么。

Promises 不是用于中止异步操作的工具。事实上,它们是一种有点相反的工具,因为它们报告异步操作发生的事情和时间。它们不会导致那些事情发生,然后在异步操作发生事情时通知观察者。


与 StackOverflow 问题的一般情况一样,如果您公开您的实际代码,我们可以提供更深入的帮助,因为这会将您的问题从理论讨论转变为对您的实际代码的选项的实际分析。

关于javascript - 如何中止 JavaScript 异步函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23204989/

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