0
我已經創建了一個執行操作的工作對象。爲了保護它,同時做兩個動作,有可能表明一個動作完成,工人準備下一個就緒標誌...如下面的代碼...Javascript工作對象沒有正確設置標誌
var worker = {
readyFlag:1,
ready: function(){
console.log('ready');
this.readyFlag = 1;
},
working: function(){
console.log('working');
this.readyFlag = 0;
},
work: function() {
console.log(this.readyFlag);
if(this.readyFlag == 1){
this.working();
doTheWork(this.ready);
}
},
};
function doTheWork(callback){
// do the work
console.log('I am executing some work');
callback();
}
worker.work();
worker.work();
問題是,它首次運行正常,它將標誌設置爲準備就緒..但由於某種原因,它將標誌設置回工作,即使.working()函數未被調用,並且console.log也不會顯示它再次工作..
請注意,worker.work()被調用兩次,但第二次,它不會執行,因爲該標誌設置爲0,即使回調函數應該設置它到1.發生了什麼事?
http://jsbin.com/wijimuriga/edit?html,js,console,output
而不是將'readyFlag'設置爲'1'或'0',我會使用'true'和'false'。 – AMACB