在es6中,yield用來暫停和恢復一個遍歷器函數的運作;yield是一個命令型的關鍵字,回傳的結果是一個狀態值,可以告訴程式目前的運作狀態,作用就是暫停個恢復運行,語法為「[rv] = yield [expression];」
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
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指令,就暫停
以上是es6中yield的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!