Skip to content

Instantly share code, notes, and snippets.

@poychang
Created July 17, 2018 03:18
Show Gist options
  • Save poychang/b761fb96dd4fc5ff34045206dc0f2b0d to your computer and use it in GitHub Desktop.
Save poychang/b761fb96dd4fc5ff34045206dc0f2b0d to your computer and use it in GitHub Desktop.
TS/JS 迭代器範例
class SampleService {
prizes = [{ numberOfWinner: 1, prizeItem: '獎項1' }, { numberOfWinner: 1, prizeItem: '獎項2' }];
drawPrize: Iterator<any>;
*GetDrawPrize() {
for (let i = 0; i < this.prizes.length; i++) {
yield this.prizes[i];
}
}
drawWinner() {
this.drawPrize = this.drawPrize || this.GetDrawPrize();
const prize = this.drawPrize.next();
if (!prize.done) {
// 抽出中獎者
// prize.value 是目前要抽獎的品項
console.log(prize.value);
}
}
}
let service = new SampleService();
service.drawWinner(); //{ numberOfWinner: 1, prizeItem: '獎項1' }
service.drawWinner(); //{ numberOfWinner: 1, prizeItem: '獎項2' }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment