vueaxios 요청이 성공했지만catch에 들어간 원인 분석

문제:axios 200 상태 코드 (즉 요청 성공) 를 되돌려주고catch 안으로 들어갔습니다.
원인:
1. axios 요청이 완료되면 then의 코드 블록, then 코드 블록에 오류 코드 정보가 존재하면catch에 들어가 이상을 던집니다. (주의: 컨트롤러가 오류를 보고하지 않습니다. 오류가catch에 포착되었기 때문입니다)
2.axios는 비동기적으로 시작합니다. 시작 후 페이지가 새로 고쳐지면 현재 프로세스를 잃어버려서 받지 못합니다.예를 들어form 폼은 단추를 눌러서 제출하면 폼이 새로 고침됩니다
보충지식:axios가catch로 쓰는 것과catch를 사용하지 않는 것은 어떤 차이가 있습니까?
홈페이지 작성법:

axios.post(url, data)
  .then(response => {
    console.log(response);
  })
  .catch(error => {
      console.log(error);
  })
회사 프로젝트 작성 방법:

axios.post(url, data)
  .then(response => {
    console.log(response);
  }, error => {
    console.log(error);
  })
이전에 then과catch의 작법을 자세히 연구한 적이 없다. 사실 이것은 axioscatch와 관련된 것이 아니라 new Promise()에 관한 then이다
완일봉은promise 문서에 소개되어 있다.
일반적으로 then 방법에서 Reject 상태의 리셋 함수 (즉 then의 두 번째 인자) 를 정의하지 말고, 항상catch 방법을 사용합니다.

// bad
promise
 .then(function(data) {
  // success
 }, function(err) {
  // error
 });

// good
promise
 .then(function(data) { //cb
  // success
 })
 .catch(function(err) {
  // error
 });
위 코드에서 두 번째 글꼴은 첫 번째 글꼴보다 낫다. 두 번째 글꼴은 앞then 방법이 실행 중인 오류를 포착할 수 있고 동기화 글꼴(try/catch)에 가깝기 때문이다.따라서 then 방법의 두 번째 파라미터를 사용하지 않고catch 방법을 사용하는 것을 권장합니다.
회사의 쓰기 방법은catch 첫 번째 매개 변수의 이상을 나타낼 수 없습니다.
이렇게 쓰면 쉽게 이해할 수 있다.

axios.post(url, data)
  .then(response => {
    // 
  }, error => {
    console.log(' ');
  })
  .catch(error=>{
    console.log(' ');
  })

axios.post(url, data)
  .then(response => {
    // 
  })
  .catch(error=>{
    console.log(' ');
  })
상기 vue axios가 성공을 요청했지만catch에 들어간 원인 분석은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기