uni-appプロジェクトリクエストパッケージ-リクエストブロッカー


uni-appプロジェクトリクエストパッケージ-リクエストブロッカー
最近会社がモバイル端末を開発する必要があるため、私はuni-appを選びました.これまでリクエストをカプセル化する時間がなかったので、今日は経験として蓄積しましょう.uni-appのリクエストをカプセル化して、お互いに勉強したいと思っています.
1.requestを作成します.js

const baseUrl = 'https://test.com';    //      ,      
//         (       )
const baseRequest = (opts, data) => {
	let baseDefaultOpts = {
		url: baseUrl+opts.url,
		//       
		data: data,
		//       
		method: opts.method,
		//       
		header: opts.method == 'get' ? {'X-Requested-With': 'XMLHttpRequest',"Accept": "application/json","Content-Type": "application/json; charset=UTF-8"} : {'X-Requested-With': 'XMLHttpRequest','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
		//      
		dataType: 'json',
		}
		let promise = new Promise(function(resolve, reject) {
			uni.request(baseDefaultOpts).then(
				(res) => {
					console.log(JSON.stringify(res[1].data))
					if(res[1].data.state == '100' || res[1].data.state == 100){
						//         100     ,         , app       console.log(JSON.stringify(res[1].data))      (         )
						resolve(res[1].data)
					}
					if(res[1].data.state == '105' || res[1].data.state == 105){
						//         105       (         )
						uni.showToast({
							icon:'none',
						    title: '    ',
						    duration: 2000 
						}); 
						//          
						return false
					}
				}
			).catch(
				(response) => {
					reject(response)
				}
			)
		})
		return promise	
};

これで通常のリクエストパッケージが完了し、次はToken付きリクエストです.
// Token  
const TokenRequest = (opts, data) => {
	let hjr_token = "";
	uni.getStorage({
		key: 'hjr_token',
		success: function(res) {
			hjr_token = res.data
		}
	});
	// token             storage  
	let DefaultOpts = {
		url: baseUrl+opts.url,
		data: data,
		method: opts.method,
		header: opts.method == 'get' ? {'Token': hjr_token,'X-Requested-With': 'XMLHttpRequest',"Accept": "application/json","Content-Type": "application/json; charset=UTF-8"} : {'Token': hjr_token,'X-Requested-With': 'XMLHttpRequest','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
		dataType: 'json',
	}
	let promise = new Promise(function(resolve, reject) {
		uni.request(DefaultOpts).then(
			(res) => {
				console.log(JSON.stringify(res[1].data))
				if(res[1].data.state == '100' || res[1].data.state == 100){
					//         100     ,         , app       console.log(JSON.stringify(res[1].data))      (         )
					resolve(res[1].data)
				}
				if(res[1].data.state == '105' || res[1].data.state == 105){
					//         105       (         )
					uni.showToast({
						icon:'none',
					    title: '    ',
					    duration: 2000 
					}); 
					//          
					return false
				}
			}
		).catch(
			(response) => {
				reject(response)
			}
		)
	})
	return promise
}

次にエクスポート
//            
export default {
	baseUrl,
	baseRequest,
	TokenRequest
}


必要な場所でimport request from'@/utils/request.js’導入
let opts={
    url: '/captureRecord/find.jhtml',
    //    (       )
    method: 'post'
    //    
};
let param={
	pageSize:10,
	pageNumber:1
	//         
};
request.baseRequest(opts, param).then(res => {
  console.log(JSON.stringify(res));
  //                  
},error => {console.log(error);})  

これで基本的なuni-appリクエストとブロッキングパッケージが完了します.急いで書いてあるので参考までに、間違ったところや完璧なところがあれば大神さんにもお申し出ください.