写项目经常碰到先进性一个axios请求,然后在进行下一个axios请求,但是此次的请求需要,用到上一次请求返回来的参数,因为axios是异步的,所以可以axios请求嵌套获取,但当数据多的时候,页面会非常的乱,此时就需要用到async和await的使用,使上述情况就好像写同步代码一样,请看例子 我们第二个请求获取列表的时候需要使用第一个请求得到的code值,当做参数传进去,那么我们看一下常规的做法吧 下面我们用es6中新的特性 asyns和await来写,注意:await的使用需要在asyns的函数内部去使用否则会报错 当然还剩最后一点,处理异常,可以加上try catch 做vue项目的时候,如果对于异常没有特殊处理,可以不加try catch
这是两个axios请求的函数//第一个 function axiosOne(){ returen axios.get(url) }; var dataOne = { //这里dataOne假如是 axiosOne请求回来的数据 msg:"成功" code:0 } //第二个 function axiosTwo(params){ returen axios.get(url,{params}) } var dataTwo = [ //这里dataTwo 假如是 axiosTwo请求回来的数据 { name:"朱康宇" age:23 } ]
function data() { dataOne().then(res => { //这里是成功请求了axiosOne返回一个dataOne 的JSON对象 //在这之后再去请求axiosTwo let params = res.code axiosTwo(params).then(res => { //这里返回的就是axiosTwo返回一个dataTwo 的JSON对象 //这是最原生的写法 ,一旦数据过多,代码就变得不清晰 }) }) } data();
async function data() { let codes = await axiosOne(); //这里的codes 就是请求axiosOne的返回JSON对象也就是dataOne let params = codes.code let lists = await axiosTwo(); //这里的lists 就是请求axiosTwo的返回JSON对象也就是dataTwo } data() //这样写是不是就简单多了,即使数据多,代码也很清晰
async function data() { try{ let codes = await axiosOne(); //这里的codes 就是请求axiosOne的返回JSON对象也就是dataOne let params = codes.code let lists = await axiosTwo(); //这里的lists 就是请求axiosTwo的返回JSON对象也就是dataTwo }catch(err){ console.log(err); } }
在这里简单解释一下为什么这样写,异步的请求,变成了同步的代码
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算