例如,有一個名爲animationComplete
(來自第三方庫)變量和函數調用happenAfterAnimation
:在Javascript中查詢本地值的首選方法是?
一個簡單的解決方案是這樣的:
while(!animationComplete) {
// Do nothing
}
happenAfterAnimation()
或者這樣一個更復雜的解決方案:
function tryHappenAfterAnimation() {
if(animationComplete) {
happenAfterAnimation()
} else {
setTimeout(tryHappenAfterAnimation, 100)
}
}
setTimeout(tryHappenAfterAnimation, 100)
第一個解決方案可能有一些開銷,第二個解決方案看起來有點髒。
由於future/promise
是不是在Javascript的當前版本,其方式可能是有點矯枉過正這裏.. 我只是想知道是否有這種情況的一個優雅而輕巧的方式..
沒有人有有關處理這個問題的更好方法的想法?謝謝!
嘗試自定義事件或發佈/訂閱。這在這種情況下可能是理想的。 – colecmc
「由於未來/承諾在當前版本的Javascript中不可用......」爲其圖書館提供期貨/承諾/事件不是該語言的任務。這是圖書館的任務。 –