juejin-cn / open-source

🏆 寻找你最值得关注的开源库
https://juejin-cn.github.io/open-source/
MIT License
253 stars 31 forks source link

【自荐】基于Promise Taro http 请求,轻便,小巧,api友好,功能丰富 #4

Closed notbucai closed 4 years ago

notbucai commented 4 years ago

taro-request

基于PromiseTarohttp请求,轻便,小巧,api友好,功能丰富

特别之处

使用方式

yarn add @bucai/taro-request
npm install @bucai/taro-request --save
import taroRequest from '@bucai/taro-request';

一步上手

首先来一个简单的get请求

// 向具有给定ID的用户发出请求
taroRequest.get('/user?id=12345')
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});

// 可选地,上面的请求也可以按照
taroRequest.get('/user', {
    params: {
            id: 'number'
    }
}).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

// 想要使用 async/await? 将`async`关键字添加到外部函数/method
async function getUser() {
    try {
        const response = await taroRequest.get('/user?ID=12345');
        console.log(response);
    } catch (error) {
        console.error(error);
    }
}

多种方法使用async/waait,开启代码便捷、畅快之旅

接着再来一个post请求

taroRequest.post('/user', {
    firstname : 'firstname',
    lastname : 'lastname'
}).then(function (response) {
  console.log(response);
}).catch(function (error) {
  console.log(error);
});

执行多并发请求例子

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

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

taroRequest.all([getUserAccount(), getUserPermissions()])
    .then(response =>{
            // dosoming ...
    });

请求方法别名

当然除了常见的get,post其他的请求也统一封装

note: 当使用别名方法url时,methoddata属性不需要在config中指定。

全局配置

使用场景用户请求需要token,或者地址前缀,一次配置,省时省心。

taroRequest.defaults.baseURL = 'https://api.example.com';
taroRequest.defaults.headers['Authorization'] = AUTH_TOKEN;
taroRequest.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

致谢 && 参考

License

MIT

kkzhilu commented 4 years ago

很抱歉回复的很晚,能够看出来这是一个全新的项目 希望你能保持初心,继续在开源领域发光发热 小Tips:可以在掘金发沸点或者撰写开源文章给自己的项目增加热度呀🤞