實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用 前面鏈條的執(zhí)行 取決于后面的鏈條
一只斗牛犬
2019-03-25 10:16:50
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
class AI{ constructor(){ this.queue = []; //1代表talk 2代表cancel 3代表sleep} talk(){let self = this;new Promise(function(resolve,reject){ self.queue.push(1); resolve(); }).then(function(res){ if(self.queue.length >= 2){ if(self.queue[0] == 1 && queue[1] == 2){ self.queue.splice(0,2); }else{ self.queue.shift(); console.log("talk"); } }else if(self.queue[0] == 1){ self.queue.shift(); console.log("talk"); } })return this; } cancel(){var self = this;new Promise(function(resolve,reject){ self.queue.push(2); resolve(); }).then(function(res){ if(self.queue[0] ==2){ self.queue.shift(); console.log("no task"); }else{ console.log("cancel"); } })return this; } sleep(n){ var self = this; new Promise(function(resolve,reject){ self.queue.push(3); resolve(); }).then(function(res){ console.log(`等待${n}秒`); self.queue.shift(); }) return this; } }
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
function AI() { this.talk = function (bool) { if (bool) { this.cancel = function () { console.log("cancel"); }; } else { console.log('talk') } return this; }; this.cancel = function () { console.log("no task"); }; return this; }
舉報(bào)