注意,遇到包含yield就停止下一句话,要正确理解”
遇到A,A中含有yield,停止执行A后面的语句,但是会执行A所包含的语句,也就是yield后面的语句
利用generator函数实现异步任务
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>遍历器对象生成函数(generator)</title>
<script>
window.onload = function(){
function* generator(){
console.log("函数开始执行")
let result = yield async()
console.log("第一个异步任务的结果为:" + result)
yield async2(result)
console.log("继续加油!!!")
}
function async(){
setTimeout(() => {
console.log("第一个异步任务执行")
let data = "1"
ge.next(data)
}, 2000)
}
function async2 (result){
setTimeout(() => {
console.log("第二个异步任务执行得到的第一个异步任务的结果为:" + result)
})
}
let ge = generator()
ge.next()
}
</script>
</head>
<body>
</body>
</html>