vue 등 두 인터페이스가 결과를 되돌려 다음 단계를 수행하는 실례

next는 {한 번만 사용할 수 있습니다. @ Promise.all로 Q를 풀 수 있습니다. 스텝 작업이 Y과로 되돌아올 때까지 기다린 후next:

beforeRouteEnter (to, from, next) {
 // Promise.all  M  Promise   resolve  ^m (then)
 Promise.all([
  main._base({
   methodName: 'QueryProductInfo',
   productId: to.params.id
  }),
  main._base({
   methodName: 'QueryProductReview',
   type: '0',
   index: '0',
   count: '2',
   productId: to.params.id
  })
 ])
 .then( result => next( vm => {
  //  Y  result  M  result[0],  resolve Y 
  vm.product = result[0].data.product
  vm.shop = result[0].data.shop

  vm.evalData = result[1].data
 }))
}
보충 지식: vue에서 다중 인터페이스 요청 시 순서대로 인터페이스를 실행합니다.
나는 쓸데없는 말을 더 이상 하지 않겠다. 모두들 코드를 직접 보는 것이 좋겠다.

 async getSelectOrg () {
  console.log('----1')
  return axiosPost('/api/uum/org/orglist', {
   accessToken: localStorage.token,
   option: true}).then(response => {
   this.options_grade = []
   if (response.data.data.length > 1) {
    this.options_grade.push({
     value: '-1',
     label: ' '
    })
    this.formInline.organization = '-1'
   } else if (response.data.data.length === 1) {
    this.formInline.organization = response.data.data[0].orgCode
   }
   for (let i = 0; i < response.data.data.length; i++) {
    let tmp = {}
    tmp.value = response.data.data[i].orgCode
    tmp.label = response.data.data[i].orgName
    this.options_grade.push(tmp)
   }
   console.log('----2')
  }).catch(err => {
   console.log(err)
  })
 },
 async getSelect () {
  await this.getSelectOrg()
  console.log('----3')
  this.searchInfo()
 }
},
mounted () {
 let that = this
 window.onresize = function () { //  
  // _this.screenWidth = document.documentElement.clientWidth //  
  that.clientHeight = document.documentElement.clientHeight //  
 }
 this.getSelect()
},
상기 vue 등 두 인터페이스가 결과를 되돌려주고 다음 단계를 수행하는 실례는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기