<script>
function API(num) {
return new Promise(resolve => {
setTimeout(() => {
resolve(num)
}, 1000);
})
}
function asyncFun(generator) {
const iterator = generator()
const next = data => {
let { done, value } = iterator.next(data);
if (done) return value
value.then(data => {
next(data)
})
};
next()
}
// 函数后面跟一个*号,就把普通函数转换成了generator函数
asyncFun(function* () {
let data = yield API(10)
data = yield API(data + 10)
console.log(data);
})
</script>
解析async await实现原理
最新推荐文章于 2024-07-29 11:53:27 发布