axios的實例和模塊封裝

封裝的思路本身意義大於對axios本身的意義。
request.js

import axios from 'axios'
export function request(config){
	return new Promise(resolve,reject) => {
		//1.創建axios的示例
		const instance = axios.create({
			baseUrl:"http://127.0.0.1:8000",
			timeout:5000
		})
		//2.發送真正的網絡請求
		instance(config).then(res =>{
			resolve(res)
		}).catch(err = >{
			reject(err)
		})
		//針對於axios來說,instance本身就是個promise,可以直接return instance(config)
	}

}

main.js

request({
	url:"/home/multidata"
}).then(res = >{
	console.log(res)
}).catch(err = >{
	console.log(err)
})

採用傳入回調函數的方式進行封裝

export function request(config,success,failure){
		//1.創建axios的示例
		const instance = axios.create({
			baseUrl:"http://127.0.0.1:8000",
			timeout:5000
		})
		//2.發送真正的網絡請求
		instance(config.baseConfig)
		.then(res =>{
			success(res)
		})
		.catch(err = >{
			failure(err)
		})
	
	

}
request({
	baseConfig:{
		url:"/home/multidata"
	},
	success: function(res){
		console.log(res)
	},
	failure:function(err){
		console.log(err)
	}
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章