关于async await 用于两个顺序执行的异步函数用法的思考

首先, 大家在项目中肯定经常遇到这样的问题, 我一个函数的参数必须得依赖于上一个函数(ajax请求等)得到的结果,这种情况解决方法有几种;

  • 第一 肯定是使用 ES6的Promise, 然后在初始化promise的实例调用then方法:
  • 第二, 可以使用async await。我们首先要知道,async函数返回的一定是一个promise对象,标有await的函数,必须是一个里面含有promise操作的函数;下面给出代码
let promise1 = async function (){
	let pro1 = await getUserId(); //2
	//if(pro1)  可以判断是否返回有userId
	let pro2 = await getUserInfo(); //1
	console.log(pro1, pro2); //2s之后才打印

	return pro2
}

//获得userId
function getUserId(){
	return  new Promise((resolve, reject) => {
		setTimeout(function () {
		let res;
		setTimeout(function () {

			res = 2;
			resolve(res);


		}, 1000);
		})
	})
}

//获得userId之后,才能根据id进行请求
function getUserInfo(){
	return  new Promise((resolve, reject) => {
		let res;
		setTimeout(function () {
			res = 1;
			resolve(res);

		}, 1000);
		
	})
}

	
console.log(promise1())//返回的是promise, 立即返回

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值