async/await异步请求同步执行

异步请求,等待执行。aysnc/await原理

		let fun1 = function(){
			return new Promise((resolve, reject)=>{
				setTimeout(()=>{
					console.log('1')
					resolve()
				}, 1000)
			})
		}
		
		let fun2 = function(){
			return new Promise((resolve, reject)=>{
				setTimeout(()=>{
					console.log('2')
					resolve()
				}, 1000)
			})
		}
		
		let fun3 = function(){
			return new Promise((resolve, reject)=>{
				setTimeout(()=>{
					console.log('3')
					resolve()
				}, 1000)
			})
		}
		
		
		function* generator(eventArray){
			for(let i = 0;i < eventArray.length; i++){
				yield eventArray[i].call(this)
			}
		}
		
		let genObj = generator([fun1,fun2,fun3])
		
		function execute(generatorControl){
			function nextFun(){
				let nextReturn = generatorControl.next()
				if(nextReturn.done) return nextReturn.value
				// 返回的是promise对象
				nextReturn.value.then(nextFun)
			}
			
			nextFun()
		}
		
		execute(genObj)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值