首頁  >  文章  >  web前端  >  es6中yield的用法是什麼

es6中yield的用法是什麼

WBOY
WBOY原創
2022-04-26 10:37:422871瀏覽

在es6中,yield用來暫停和恢復一個遍歷器函數的運作;yield是一個命令型的關鍵字,回傳的結果是一個狀態值,可以告訴程式目前的運作狀態,作用就是暫停個恢復運行,語法為「[rv] = yield [expression];」

es6中yield的用法是什麼

本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6中yield的用法是什麼

yield這個關鍵字是用來暫停和恢復一個遍歷器函數(的運行)的。

yield是個關鍵字 ,它的作用是「命令」。和var不同,不是用來聲明,但是和return一樣,用來告知程式某種狀態,return告訴程式要回傳什麼值(也意味著結束,結束的時候才會傳回值嘛),而yield告訴程式目前的狀態值,而且你運行到這裡暫停一下。

yield是指令型的關鍵字,所以它的用法是:

[rv] = yield [expression];

 rv是可選的,這裡不是說它回傳一個陣列。 yield後面的表達式也是可選的。 yield的回傳值是一個狀態值。如果從回傳值的角度來講,yield還可以當做是一種運算符,但是由於它的作用是暫停和恢復,所以嚴格意義上說,不能叫運算符,運算符是用來運算的,而yield是用來「命令」的。

把yield看成一個變量,字串裡面,可以這樣使用:

var log = function *() {
  console.log(`you input: ${yeild}`)
}().next(); // 这里会提示错误: yeild undefined
log.next('hello world!');

總結一下yield,實際上:

  • 只能在Generator函數內部使用

  • 運行.next(),遇到一個yield指令,就暫停

  • ##.next ()的回傳值表示一個狀態{value,done}

  • 再運行.next(),從之前遇到的那個yield [表達式]處(後)繼續恢復運行

  • 當.next()傳入的時候,yield [表達式]整個被替換為傳入的參數。

【相關推薦:

javascript影片教學web前端#

以上是es6中yield的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:es6兼容ie8嗎下一篇:es6兼容ie8嗎