ES6 generator函数与yield的理解、及在react项目中的使用

1. yield是什么

  • yield是ES6的新关键字,使生成器函数执行暂停,将其后面的表达式的值以对象的形式返回。可以理解为生成器函数专有的return关键字。

  • yield关键字实际返回的是一个迭代器对象,{value:返回值,done:是否完成}

  • yield无法单独工作,需要配合generator(生成器)的其他函数,如next。

    先来个简单的例子:

    function* saleCount(){
         
            var saleList = [1,5,9]
            for (var i=0;i<saleList.length;i++){
         
                //yield 相当于生成器函数专用的return 关键字
                yield saleList[i];
            }
        }
        var fn = saleCount()
        
        var res1 = fn.next() //{value: 1, done: false}
        
        var res2 = fn.next() //{value: 5, done: false}
        
        var res3 = fn

你可能感兴趣的:(javascript,react基础,javascript,react.js,前端)