- callback 回调地狱
- 使用Promise
promise('promise')
.then
.then
……
- 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()
})
- 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')
- Async和Await组合ES7
(async ()=> {
await promise()
await promise()
})()