Skip to main content

异步

1

// 不输出5 // 不会输出6 因为then 返回的promise 没有resolve

new Promise((resolve, reject) => {
console.log(1)
resolve()
setTimeout(() => {
console.log(2)
})

})
.then(() => {
console.log(3)
})
.then(() => {
return new Promise((resolve, reject) => {
console.log(4)
}).then(() => {
console.log(5)
})
})
.then(() => {
console.log(6)
})
console.log(7)

2

//async1 start=> async2 start=>new promise=>async2 end=>new promise1=>new promise2=>async1 end=>new promise3

async function async1() {
console.log('async1 start')
await async2()
console.log('async1 end')
}
async function async2() {
console.log('async2 start')
return Promise.resolve().then((res) => {
console.log('async2 end')
})
}
async1()
new Promise((resolve) => {
console.log('promise')
resolve()
})
.then(function () {
console.log('promise1')
})
.then(function () {
console.log('promise2')
})
.then(function () {
console.log('promise3')
})

3

function* foo(x) {
var y = 2 * (yield x + 1)
var z = yield y / 3
return x + y + z
}

var a = foo(5)
console.log(a.next())
console.log(a.next())
console.log(a.next())

var b = foo(5)
console.log(b.next())
console.log(b.next(12))
console.log(b.next(13))