javascript - Promise 비동기 작업에 대한 의문과 이를 더 우아하게 작성하는 방법
大家讲道理
大家讲道理 2017-07-05 11:04:56
0
3
866
  • 지난 며칠 동안 "약속" 관련 기술 게시물을 많이 읽었지만 그 기능에 대해서는 조금밖에 이해하지 못했습니다.

  • 먼저 문제에 대해 이야기해 보겠습니다. 프로젝트에서 가장 많이 사용되는 것은 "다중 Ajax 종속성 요청"입니다. R1 > R2( r1_result ),
    The 가장 문제가 없는 방법은 모두 동기화되지만 결과는 끔찍한 경험입니다. 페이지가 정지되고 로딩이 중지됩니다. 비동기 작업을 사용할 때의 역겨운 점은 콜백 계층과 후속 종속 작업입니다.

  • 인생은 던지는 것이기 때문에 첫 문단으로 돌아가서 여러 가지를 읽어보니 어떤 형제가 약속의 원리를 분석하는 것을 보았습니다. 여기 이 형제의 코드가 있습니다. http://malcolmyu.github.io/ 엄마...

으아악
  • 읽고나니 또 궁금해지네요. 그렇다면( function(){ do... } ), 이것은 콜백이 아닐까요? 토스의 의미는 설탕 구문( 나는 그것을 믿지 않는다).

  • 존재는 합리적이므로 결국 Promise를 합리적으로 사용하는 방법과 Ajax 프로세스를 더 우아하게 운영하는 방법은 무엇일까요? 그런데 axios fetch.js를 사용하는 것에 대해 어떻게 생각하시나요?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(3)
伊谢尔伦

Promise는 비동기 흐름 제어를 해결하기 위해 탄생했습니다.
then은 언뜻 보기에 콜백처럼 보이지만, then의 특징은 예외와 체인 쓰기를 처리할 수 있다는 것입니다. Ajax 요청 종속성은 다음과 같습니다.

A1 ->
Aa ->Ab;Ab +
Ac ->Ax;

Promise를 사용하면 코드가 매우 명확해집니다
먼저 A1, A2, Aa, Ab, Ac, Ad, Ax를 준비하세요. 모두 종속성에 따라 Promise 개체를 반환하는 함수이므로 더 이상 작성하지 않겠습니다. 그러면 Promise 공연을 보실 수 있습니다 :

으아악
A1, Aa 및 Ac는 종속성이 없으며 동시에 실행되며 종속성 완료에 따라 계속됩니다.
어떤 Ajax 문제가 발생하더라도 최종 Err 이벤트가 트리거되어 오류를 균일하게 처리합니다. 콜백을 작성해 보세요. 효율성이 좋지 않거나 종속성을 확인하기 위해 콜백 메서드에 많은 코드가 추가됩니다.

참조 코드:

으아악
위 코드는 오류를 처리하지 않고 너무 길어요. 종속성이 더 복잡하다면 코드의 양을 짐작할 수 있고 오류가 발생하기 쉽습니다.

为情所困

당신의 이해는 기본적으로 정확합니다. 사실, Promise그것은 많이 단순화되지 않았으며 단지 중첩 수준을 줄였습니다.

그래서 궁극적인 해결책은 Async/Await질문자가 정보를 확인할 수 있다는 것입니다.

刘奇

우아함은 차례로 콜백 크리스마스 트리 모양을 곧게 펴는 것이 Promises의 공헌입니다.

프로그램을 작성할 때 7~8개의 콜백을 중첩해야 하는데 Promises가 훨씬 더 좋습니다.

글쓰기가 너무 번거롭다고 생각되면 사용하지 마시고 Async/Await를 사용하세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿