首页 > 解决方案 > 异步操作回调必须只运行一次吗?

问题描述

明确规定Promise/A+ 回调 (onFulfilledonRejected) 必须只运行一次,另一方面,最多可以运行其中一个。

当我们以“经典”回调样式 () 编写异步 js 代码时asyncOperation(cb),是否有任何保证(可能基于某些事实上的约定)cb只会执行一次?换句话说,在实践中,如果我们处理一个我们不了解其约定的人提供的库,并且我们强烈反对异步操作回调将运行多次,那么我们是否担心采取规避措施?

标签: javascript

解决方案


当我们以“经典”回调样式(asyncOperation(cb))编写异步 js 代码时,是否有任何保证(可能基于某些事实上的约定)cb 只会执行一次?

不。例如,请参阅setIntervalonReadyStateChange

换句话说,在实践中,如果我们处理一个我们不了解其约定的人提供的库,并且我们强烈反对异步操作回调将运行多次,那么我们是否担心采取规避措施?

在实践中,您应该阅读文档并了解库在做什么。


推荐阅读