作爲一個教育項目,我正在編寫(另一種)JavaScript編輯器式的實時語法突出顯示器。Javascript併發控制
爲了保持編輯器響應,我顯然選擇讓熒光筆異步運行,但是對於我使用的模型,如果在當前的熒光筆完成之前鍵入內容,則需要在啓動另一個熒光筆之前終止熒光筆,並且知道它在新手開始之前就已經結束了。
我的想法做一些類似下面的:
var terminate = false;
var terminated = false;
function work() {
while(!terminate)
console.log('working');
terminated = true;
}
function stop() {
terminate = true;
while(!terminated);
console.log('stopped');
}
setTimeout(work, 0);
setTimeout(stop, 10);
這個例子不過是不行的,我已經到位忙望眼欲穿的使用更多的下一個定時器,試過了,無論是。
有沒有一種方法可以在JavaScript中實現這樣的系統,還是我應該使用一些替代方法(或兩者)?
啊,這確實有用,不知道我必須做些什麼:/儘管不應該'終止=真;'在'else'而不是'if',以防止不必要的setTimeout? – connec
是的,那會更好。固定。 –