前言
??之前學(xué)vue的時(shí)候看到過(guò)異步加載數(shù)據(jù)的寫(xiě)法,并且在vue里面用的大都是ES6的語(yǔ)法。對(duì)于async和await并不太了解,網(wǎng)上說(shuō)在uniapp中請(qǐng)求數(shù)據(jù)時(shí)總是數(shù)據(jù)和頁(yè)面不同步,用了他倆可以將數(shù)據(jù)搞同步。那今天就搞搞async和await
開(kāi)搞
??1.在uniapp中封裝一個(gè)請(qǐng)求方法,文件名request.js
export default function request(url, data = {}, method = 'GET') { //data和method是初始化值
return new Promise((resolve, reject) => {
uni.request({
url: url,
data: data,
method: method,
success: (res) => {
console.log(res)
resolve(res.data);
},
fail: (err) => {
reject(err)
}
});
})
}
??2.再開(kāi)另一個(gè)js文件,叫做axios.js,用于填寫(xiě)request.js中的參數(shù)并獲取返回?cái)?shù)據(jù),這里面可以寫(xiě)好多個(gè)export,隨意點(diǎn)嘛
import request from "./request.js";
const url = "http://localhost:9988";
//頁(yè)面初始化時(shí)獲取前1-20條數(shù)據(jù)
export const getInitPaged = () => request(url + '/find/pages/1/20')
??3.在xxx.vue中的method中寫(xiě)一個(gè)方法,用于將axios.js中返回的值接收并處理
//1.先將文件導(dǎo)入
import { getInitPaged } from '../../request/axios.js';
//2.在method中創(chuàng)建一個(gè)方法,用async修飾,里面的方法用await修飾
async getInitPages() {
const arr = await getInitPaged();
this.version = arr.object;//將數(shù)據(jù)給data里面的變量
},
//初始化的時(shí)候可以使用
created() {
this.getInitPages()
},