Skip to content

AllenPan03/rnpx-axios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rnpx-axios

对axios的二次封装,结合rnpx项目使用

npm version build status code coverage install size npm downloads gitter chat code helpers

Promise based HTTP client for the browser and node.js

Features

  • 全局请求配置
  • 全局请求状态管理
  • 添加请求发送拦截器
  • 添加请求返回拦截器
  • 请求入参格式化
  • 接口返回数据做了统一封装

Browser Support

Chrome Firefox Safari Opera Edge IE
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔ 11 ✔

Browser Matrix

Installing

Using npm:

$ npm install rnpx-axios

Using bower:

$ bower install rnpx-axios

Using yarn:

$ yarn add rnpx-axios

Using cdn:

<script src="https://unpkg.com/rnpx/dist/rnpx-axios.min.js"></script>

Example

Performing a GET request

const rnpxAxios = require('rnpx-axios');
//Initializes the configuration item
rnpxAxios.init();
// Make a request for a user with a given ID
rnpxAxios.get('/user?ID=12345')
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })
  .finally(function () {
    // always executed
  });

// Optionally the request above could also be done as
rnpxAxios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {
    // always executed
  });  

// Want to use async/await? Add the `async` keyword to your outer function/method.
async function getUser() {
  try {
    const response = await rnpxAxios.get('/user?ID=12345');
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

NOTE: async/await is part of ECMAScript 2017 and is not supported in Internet Explorer and older browsers, so use with caution.

Performing a POST request

rnpxAxios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

Performing multiple concurrent requests

function getUserAccount() {
  return rnpxAxios.get('/user/12345');
}

function getUserPermissions() {
  return rnpxAxios.get('/user/12345/permissions');
}

axios.all([getUserAccount(), getUserPermissions()])
  .then(rnpxAxios.spread(function (acct, perms) {
    // Both requests are now complete
  }));

axios API

Requests can be made by passing the relevant config to axios.

axios(config)
// Send a POST request
rnpxAxios.ajax({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});
// GET request for remote image
rnpxAxios.ajax({
  method: 'get',
  url: 'http://bit.ly/2mTM3nY',
  responseType: 'stream'
})
  .then(function (response) {
    response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
  });

About

对axios的二次封装,结合rnpx项目使用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published