async/await 实现原理
程序员文章站
2022-06-12 22:49:22
...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>async/await 实现原理</title>
</head>
<body>
<!-- async/await 的原理就是把Generator函数和自动执行器封装在同一个函数里,具体实现co.js-->
<!-- co.js 函数接受一个generator函数作为参数,最终返回一个promise对象 -->
<script>
// 简易co函数
// gen : generator 函数
function myCo(gen) {
return new Promise((resolve, reject) => {
const next = data => {
try {
const { value, done } = gen.next(data);
} catch (error) {
return reject(error);
}
if (!done) {
Promise.resolve(value).then(val => {
next(val);
}, reject);
} else {
resolve(value);
}
};
next(); //执行一次next
});
}
</script>
</body>
</html>
未完待续
转载于:https://www.jianshu.com/p/54fc5ea12fb7
上一篇: 12月2日A5域名拍卖行情汇总