例如,您有一个Web音乐播放器应用程序。当用户点击播放按钮时,会触发一个功能,查找MP3数据,设置播放器等等,但是然后用户改变主意并点击另一首曲目上的播放。有没有办法完全取消前面的功能?我知道你可以放弃XHRequests,但我的意思是整个功能。也许JS承诺?如何中止JavaScript异步函数?
1
A
回答
2
在JavaScript中的同步功能将运行至完成。它不会被其他用户操作中断。因此,在您的场景中,如果某个函数触发并正在设置播放器,则在处理下一个用户事件之前,该函数将运行至完成状态。所以,你不能在javascript中放弃一个同步函数,反正没有办法,因为(除了web worker,这里不是我们讨论的内容),javascript是单线程,只要函数正在运行,它会运行完成并且不会处理其他用户事件。
但是,如果该函数中有某种异步操作(例如通过ajax或加载音乐文件的播放器加载某些内容),那么是否可以中止异步操作是否可以中止,完全取决于特定的支持在那个操作中 - 没有通用的中止。为了帮助我们解决异步细节问题,您需要披露您的实际代码,以便我们看到您正在做的事情。
承诺是不是中止异步操作的工具。事实上,他们是一个相反的工具,因为他们报告异步操作发生的事情和时间。它们不会导致这些事情发生,然后在异步操作发生时才通知观察者。
如通常是StackOverflow的问题的情况下,我们可以帮助深入更多,如果您披露您的实际代码,因为这将您的问题从理论的讨论变成什么样的选择是对的实证分析你的实际代码。
相关问题
- 1. Javascript异步函数
- 2. 的JavaScript:异步函数
- 3. 编写异步javascript函数
- 4. 异步加载javascript函数
- 5. 异步加载JavaScript函数。
- 6. 在JavaScript中停止未决的异步函数
- 7. javascript函数是同步还是异步?
- 8. JavaScript:异步函数,恢复到同步
- 9. 如何为异步函数创建异步包装函数?
- 10. 客户端异步JavaScript函数(如何编写回调函数)
- 11. 在javascript中的异步递归函数
- 12. JavaScript中的递归异步函数
- 13. 在JavaScript中异步调用函数
- 14. 在javascript中异步执行函数
- 15. 异步函数异步函数
- 16. 如何从javascript中的异步函数传递参数?
- 17. 如何使用参数作为异步函数(Javascript)编写同步函数?
- 18. 如何终止C#中的异步函数
- 19. 如何在array.forEach中使用Javascript中的异步函数等待
- 20. React-native防止函数异步执行?
- 21. 如何在Javascript中创建一个异步函数?
- 22. 如何在异步函数中使用javascript对象
- 23. 如何处理JavaScript中的异步函数结果
- 24. 如何从头开始在Javascript中编写异步Map函数?
- 25. 如何在javascript中调用异步函数
- 26. 如果我在JavaScript中只包含异步函数的函数,新函数是否也是异步的?
- 27. Javascript \ Kango:如何在非异步函数中获取异步JS函数的返回值?
- 28. JavaScript:如何在异步内部函数中返回外部函数?
- 29. 测试异步异步等待JavaScript函数
- 30. 在异步函数中调用函数javascript(流星)undefined
取决于函数,但没有,你不能只是取消任何异步函数具有一些特殊的方法。 – adeneo
没有办法'取消'一个功能。它必须是API的一部分。在你的例子中,它听起来像AJAX,你可以取消。 –
您不能取消您已经完成的功能的结果。但是你的帖子中没有这个问题。只需重新构建你的模型。你不需要你所要求的。 –