在了解Generator函数的时候,发现看完Generator函数知道了写法,知道了含义,但是它到底是怎样解决异步的,到底好在哪,灵活在哪,经过好长时间的消化,才算是摸清了点头绪。
再看资料的时候,总会看到这样一句话Generator 函数是 ES6 提供的一种异步编程解决方案,异步编程的解决方案是指在写代码层面上,解决了以往的回调套回调的噩梦,包括promise也一样,还有ES7里的async/await,都是在写的时候对我们理解更友好,说俗了,因为我们习惯了,从上到下写代码,一行代码一行代码的按顺序解析。
那么Generator也一样,什么next,什么yeild给我们了这么多东西我们到底要用来干嘛呢:
看下面代码:
function* generatorText(){
const result = yield ajax("www.url.com");
const res = JSON.pase(result).value;
console.log(res)
}
function ajax(url){
asyncAjax(url,(res)=>(
f.next(res)
))
}
const f = generatorText();
f.next()
这里在generatorText函数中我们就实现了,代码从上而下执行,打印出异步请求的数据了。