js异步进化过程

119 阅读1分钟
  1. callback 回调地狱
  2. 使用Promise
promise('promise')
.then
.then
……
  1. Generator 和 yield 和 iterator ES6
const generator = function* (name) {
    yield promise(name)
    yield promise(name)
    yield promise(name)
    ……
}

const gen = generator('Generator')
gen.next().value.then(()=> {
    gen.next()
})
  1. co库
let co = function(gen,name) {
    let it = gen(name)
    let ret = it.next()
    ret.value.then(function(res) {
        it.next(res)
    })
}

co(generator,'CO')
  1. Async和Await组合ES7
(async ()=> {
    await promise()
    await promise()
})()