有一個對象來存儲數據。JavaScript函數執行是否可以中斷?
var store = {
elements: [],
eventsEnabled: true,
addElement: function(element) {
this.elements.push(element);
if (this.eventsEnabled) {
// Code that triggers event, calls handlers... whatever
}
}
};
存儲數據的行爲來自兩個事件(兩種生產者的種類)。一是「生產者」不會觸發任何事件:
setInterval(function() {
store.eventsEnabled = false;
store.addElement('hello');
store.eventsEnabled = true;
}, 12000);
第二次卻觸發事件:
setInterval(function() {
store.addElement('bye');
}, 7000);
的問題是,可先製作人的第二個生產突破執行流程?我的意思是,如果生產者1禁用事件,並且在完成執行之前(並且因此在事件再次被啓用之前),生產者2開始執行並且添加其元素,則不會觸發事件。那可能嗎?會發生嗎?
如果是這樣,該代碼如何轉換爲種類線程安全的?
你打我這個! :) – bPratik
盛大的建議Jamiec,你有我的+1。阿普萊爾斯回答了我的問題。 –