0
有時在服務器上,我有這樣的情況,當它需要從另一段代碼更改對象的時候獲取一些數據。在對象查看期間保持最新的對象狀態非常重要。我用這樣的代碼解決了這個問題:js,對象的狀態監視
var Obj1={}
Obj1.actual=false;
//asynk part that modifies object
function modify_func(){
Obj1.actual=false;
//modifying operations
Obj1.actual=true;
}
//asynk part that gets object state
function view_func(){
if(Obj1.actual){
//operations
...
return;
}
//if not actual
var timer=setInterval(function(){
if(Obj1.actual){
//operations
...
clearInterval(timer)
}
},1000)
}
這兩個函數可以在任何時候喚醒。 但是,我並不認爲使用setInterval和actuality字段是個好主意。 這個問題有更好的解決方案嗎?
我建議爲此實現一個事件監聽器。因此請註冊任何想知道更改的回調,並在更改完成後調用這些回調。 –
@GerardvanHelden,我不能把view_func放到cb上,因爲它位於服務器上的單獨請求處理程序中,並且可以執行1000次,而modify_func只有10例如,反之亦然 –