iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
1
自我挑戰組

JavaScript技術手冊閱讀筆記系列 第 25

第25天:Generator產生器函式

  • 分享至 

  • xImage
  •  

yield有點像是return,是ES6開始提供的功能,return會結束工作,回到呼叫端,而yeild是暫停當下的工作,回到呼叫端。

function add1(i,j){
    return i + j;
}

function* add1(i,j){
    yield i + j;
}

function加上星號,function*指的是Generator產生器函式物件,在產生器函式中才能使用yield。
https://ithelp.ithome.com.tw/upload/images/20201010/20120420U4qT9J4Zyq.png

產生器函式物件有實作iterator是可迭代物件,有提供next()方法取得內容並可以用for...of進行跌代。
https://ithelp.ithome.com.tw/upload/images/20201010/20120420YNqGn6pP3F.png

for...of每次迭代會呼叫next()方法,取得yield的指定值,一直迭代到出現done為true為止

function* show(){
    yield 1;
    yield 2;
    yield 3;
    yield 4;
    yield 5;
}

https://ithelp.ithome.com.tw/upload/images/20201010/20120420ItJwbbt253.png


上一篇
第24天:Set()
下一篇
第26天:this(1)
系列文
JavaScript技術手冊閱讀筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言