IT이야기

vuejs로 응답을 보내기 전에 악리 응답을 기다리는 방법

cyworld 2022. 7. 24. 22:18
반응형

vuejs로 응답을 보내기 전에 악리 응답을 기다리는 방법

vuejs에는 파일 업로드를 위한 작은 컴포넌트가 있습니다(악시 사용).파일 업로드에서 다음과 같이 응답을 보내려고 합니다.

methods: {
  ...
  upload (){
    axios.put(URL).then(response => {

    console.log('response', response)
    this.$emit('uploaded', response)

    }).catch(error => {

    })
  }

}

하지만 이 코드에서는,console.log()응답은 양호하게 표시되며, 방출은 표시된다.undefined응답도 하기 전에 이미지가 호출되고 있는 것 같습니다.

이 문제를 해결하기 위해 비동기/대기 기능을 사용할 수 있는 방법이 있습니까?

console.log 응답은 정상적으로 표시되지만 emiss는 정의되지 않은 것으로 표시됩니다.

어떤 의미인지 잘 모르겠습니다.왜냐하면, 이 응답은, 이 안에서 사용할 수 있는 경우,console.log내부에서도 사용할 수 있어야 합니다.this.$emit(단,this.$emit그 자체가 당신에게undefined이 경우 범위 지정에 문제가 있지만 화살표 기능을 사용하고 있는 것 같기 때문에 그렇지 않습니다.

응답이 준비되기 전에 방출이 호출된 것 같습니다.

콜백 내에 있기 때문에 요구가 완료된 후에만 콜백이 됩니다.

단, 비동기 / 대기를 시도하려면 다음과 같이 하십시오.

async upload() {
  try {
     let response = await axios.put(URL);
     console.log('response', response)
     this.$emit('uploaded', response)
  } catch(error) {
     // error
  }
}

언급URL : https://stackoverflow.com/questions/46990256/how-to-await-axios-response-before-emitting-response-in-vuejs

반응형