Created
July 17, 2018 03:18
-
-
Save poychang/b761fb96dd4fc5ff34045206dc0f2b0d to your computer and use it in GitHub Desktop.
TS/JS 迭代器範例
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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