axios是什么
axios是基于promise(诺言)用于浏览器和node.js是http客户端。
promise是什么
promise是什么:是一个对象用来传递异步操作的信息,它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的api,可供进一步的处理。
promise的作用:Promise的出现主要是解决地狱回调的问题,比如你需要结果需要请求很多个接口,这些接口的参数需要另外那个的接口返回的数据作为依赖,这样就需要我们一层嵌套一层,但是有了Promise 我们就无需嵌套。
promise的本质是什么:分离异步数据获取和业务
使用axios原因
- 支持发送ajax异步
- 支持在NodeJs中发送ajax请求
- 支持Promise
- 支持拦截器请求和响应
- 支持对请求和响应数据的转换
- 取消请求
- 自动转换json格式数据
- 客户端支持防御XSRF
(目前没看很明白,明白了会发这个原因详解出来)
使用
基本格式
基本的格式就是
axios.x1().then(function (..){
.....
}).catch(function (..){
})
x1为下图里axios内置的所有方法
get请求
// 为给定 ID 的 user 创建请求
axios.get('/user?ID=123)
.then(function(response){
console.log(response)
}).catch(function(error){
console.log(error);
});
post请求
axois.post('/user',{
first:'hh',
}).then(function(response){
console.log(response);
}).catch(fuction(error){
console.log(error);
});
并发请求
并发处理并发请求的函数
axios.all(iterable)
axios.spread(callback)
function getUserAccount() {
return axios.get('/user/12345');
}
function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// 两个请求现在都执行完成
}));
获取远端图片
// 获取远端图片
axios({
method:'get',
url:'http://bit.ly/2mTM3nY',
responseType:'stream'
})
.then(function(response) {
response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
});
学习案例
学习参考文章
http://www.axios-js.com/zh-cn/docs/