开发过程中常常会遇到这种状况,一个接口的调用要依赖另一个接口返回的数据能力调用。这个时候就须要用到js的异步相干性能,用来实现性能。

性能要求:点击一个【申请XX】操作按钮,刷新整个页面,并关上弹框获取弹框最新数据
实现:
vue局部:

<a-button   class="defaultBtn"   @click="openModal('apply', infoObj)">申请xx</a-button> <ApplyRefundModal   v-if="applyIsShow"   v-model:visible="applyIsShow"   :dialogTitle="modalTitle"   :afterSaleType="1"   :relatedObj="rRelatedObj"   @stationSave="rebackStationSave"/>

ui:

js局部:写法1

const getDetail = () => {     // 获取以后页面数据     // ...    return new Promise(resolve => {        http.api(params).then(res => {            // 一些数据操作            // 返回后果            resolve(res)        }).catch()    })}const openModal = async (type, data) => {  switch (type) {    case 'apply': // 申请 点击申请从新调用接口      // 加大括号的目标是为了让数据处于以后作用域,使得传给弹框页的数据是最新数据      {        const result = await getDetail()        applyIsShow.value = true        modalTitle.value = '申请xx'        relatedObj.value = {          type: result.type,          id: result.id,          code: result.code,          status: result.status        }      }      break    }}

写法2:

const getDetail = () => {     // 获取以后页面数据     // ...    return new Promise(resolve => {        http.api(params).then(res => {            // 一些数据操作            // 返回后果            resolve(res)        }).catch()    })}const openModal = async (type, data) => {  switch (type) {    case 'apply': // 申请 点击申请从新调用接口      getDetail().then(result => {        applyIsShow.value = true        modalTitle.value = '申请xx'        relatedObj.value = {          type: result.type,          id: result.id,          code: result.code,          status: result.status        }      })      break    }}

两种写法后果一样,都能够实现