axios和(async,await)[通俗易懂] -金沙1005

axios和(async,await)[通俗易懂]axios和(async,await)1.基于promise用于浏览器和node.js的http客户端2.支持浏览器和node.js;3.支持promise;4.能拦截请求和响应请求;5.自动转换json数据;6.能转换请求和响应数据;1.axios基本用法1.get和delete请求传递参数​ 1.通过传统的url以?的形式传递参数;​ 2.restful形式传参;​ …

axios和(async,await)

1.基于promise用于浏览器和node.jshttp客户端

2.支持浏览器和node.js;

3.支持promise;

4.能拦截请求和响应请求;

5.自动转换json数据;

6.能转换请求和响应数据;

1.axios基本用法

1.getdelete请求传递参数

​ 1.通过传统的url?的形式传递参数;

​ 2.restful形式传参;

​ 3.通过params形式传递参数;

2.post和put请求传递参数

​ 1.通过选项传递参数;

​ 2.通过urlsearchparams传递参数;

    # 1. 发送get 请求 
axios.get('http://localhost:3000/adata').then(function(ret){ 
 
#  拿到 ret 是一个对象      所有的对象都存在 ret 的data 属性里面
// 注意data属性是固定的用法,用于获取后台的实际数据
// console.log(ret.data)
console.log(ret)
})
# 2.  get 请求传递参数
# 2.1  通过传统的url  以 ? 的形式传递参数
axios.get('http://localhost:3000/axios?id=123').then(function(ret){ 

console.log(ret.data)
})
# 2.2  restful 形式传递参数 
axios.get('http://localhost:3000/axios/123').then(function(ret){ 

console.log(ret.data)
})
# 2.3  通过params  形式传递参数 
axios.get('http://localhost:3000/axios', { 

params: { 

id: 789
}
}).then(function(ret){ 

console.log(ret.data)
})
#3 axios delete 请求传参     传参的形式和 get 请求一样
axios.delete('http://localhost:3000/axios', { 

params: { 

id: 111
}
}).then(function(ret){ 

console.log(ret.data)
})
# 4  axios 的 post 请求
# 4.1  通过选项传递参数
axios.post('http://localhost:3000/axios', { 

uname: 'lisi',
pwd: 123
}).then(function(ret){ 

console.log(ret.data)
})
# 4.2  通过 urlsearchparams  传递参数 
var params = new urlsearchparams();
params.append('uname', 'zhangsan');
params.append('pwd', '111');
axios.post('http://localhost:3000/axios', params).then(function(ret){ 

console.log(ret.data)
})
#5  axios put 请求传参   和 post 请求一样 
axios.put('http://localhost:3000/axios/123', { 

uname: 'lisi',
pwd: 123
}).then(function(ret){ 

console.log(ret.data)
})
axios和(async,await)[通俗易懂]

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

2.axios全局配置

//配置公共的请求头
axios.defaults.baseurl = 'https://127.0.0.1:3000/api'
// 配置超时时间
axios.defaults.timeout = 3000;
// 配置公共请求头
axios.defaults.headers.common['authorization'] = auth_token;
//配置公共的post的content-type
axios.defaults.headers.post['content-type'] = 'application/x-www-form-urlencoded';

3.axios拦截器

1.请求拦截器: 请求拦截器的作用是在请求发送前进行一些操作,例如:在每个请求体中加上token,统一做了处理 后要改也很简单;

2.响应拦截器: 响应拦截器的作用是在接收到响应后进行的一些操作,如:在服务器返回登录状态失效,需要重新 登录的时候,跳转到登录页;

//1.请求拦截器
axios.interceptors.request.use(function(config){ 

console.log(config.url)
//任何一部都会经过这一步,在发送请求前做些什么
config.headers.mytoken = 'token字符串'
//这里一定要return 否则配置不成功
return config
},function(err){ 

//请求错误的时候
console.log(err)
})
//2.响应拦截器
axios.interceptors.response.use(function(res){ 

//接收响应后做些什么
var data = res.data;
return data;
},function(err){ 

//打印错误
console.log(err)
})

4.async 和await

1.async作为一个关键字放在函数前边,任何一个async函数都会隐式返回一个promise;

2.await 关键字只能在使用async定义的函数中使用,await后面可以直接跟一个promise实例对象,await 函数不能单独使用;

3.async/await让异步代码看起来,表现更象同代码;

 	# 1.  async 基础用法
# 1.1 async作为一个关键字放到函数前面
async function querydata() { 

# 1.2 await关键字只能在使用async定义的函数中使用      await后面可以直接跟一个 promise实例对象
var ret = await new promise(function(resolve, reject){ 

settimeout(function(){ 

resolve('nihao')
},1000);
})
// console.log(ret.data)
return ret;
}
# 1.3 任何一个async函数都会隐式返回一个promise   我们可以使用then 进行链式编程
querydata().then(function(data){ 

console.log(data)
})
#2.  async    函数处理多个异步函数
axios.defaults.baseurl = 'http://localhost:3000';
async function querydata() { 

# 2.1  添加await之后 当前的await 返回结果之后才会执行后面的代码   
var info = await axios.get('async1');
#2.2  让异步代码看起来、表现起来更像同步代码
var ret = await axios.get('async2?info='  info.data);
return ret.data;
}
querydata().then(function(data){ 

console.log(data)
})
js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/118690.html

(0)

相关推荐

  • apple控制中心插件_ios10控制中心插件苹果ios越狱后玩法众多,单单一个控制中心就有多款给力插件可用,例如大家最熟悉的ccsettings,可以让快捷开关从原来的5个增加到21个,而

  • ios plist_随机数生成器原理

    ios plist_随机数生成器原理iosplist的快速生成方法

  • java iso 8601_如何在ios上获得iso 8601日期?一个经常被忽视的问题是iso8601格式的字符串可能有毫秒而不是.换句话说,“2016-12-31t23:59:59.9999999”和“2016-12-01t00:00:00”都是合法的,但如果您使用的是静态类型的日期格式化程序,则其中一个将不会被解析.从ios10开始,您应该使用iso8601dateformatter来处理iso8601日期字符串的所有变体.见下面的例子…

  • vue使用axios调用后端接口_ajax向后端传值

    vue使用axios调用后端接口_ajax向后端传值首先后端提供接口//查询所有数据exports.select=(req,res)=>{constsqlstr=’select*frommy_db_01.ev_articles’db.query(sqlstr,(err,result)=>{//查询数据失败if(err)returnconsole.log(err.message);//查询数据成功,如果执行select语句,返回数组res.send({

  • apple 支付_苹果app付款一.简介什么是iap,即in-app-purchase。(虚拟商品如:课程、视频、音乐等数字产品只能走apple的内购),苹果要扣除30%的销售额,再扣除一点相关的交易税,用户到手将不到7成。官方参考文档内购流程1.获取内购列表(从app内读取或从自己服务器读取)2.appstore请求可用的内购列表3.向用户展示内购列表4.用户选择了内购列表,再发个购买请求,收到购买完成的回调…

  • object-c和c语言有不少的类似之处,比如语法的基本变量类型几乎一致,循环分支相似(其实大部分高级语言比如javac 在这一点上是由有共同性的,基本都继承了c语言的特点).object-c总体的风格上比较古怪,主要体现在对象和方法上.无论是java亦或是c ,调用某个对象的方法是这样做的:ctx.method(5);然而oc上用中括号来进行:[c…

  • ios设备使用socks代理「建议收藏」在linux上运行了socks5的代理客户端之后,发现我的iphone在局域网的详细信息里竟然无法设置socks代理,只有http代理,而我的代理客户端又不支持http代理,所以找了下iphone上设置socks代理的方法,记录如下:httpprxoy有3种模式:关闭off/手动manual/自动auto用自动配置文件,就可以支持socks代理functionfindproxyf

  • 随着iphone的流行,越来越多的程序员开始学习objectc编程,但一般来说编写objectc需要imac计算机。这对于刚开始学习objectc编程的程序员是个问题。本文给出了一个在windows平台上学习objectc编程的方法。1.下载gnustep  http://ftpmain.gnustep.org/pub/gnustep/binaries/windows

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图