> 웹 프론트엔드 > JS 튜토리얼 > Angularjs의 Promise 객체에 대한 자세한 설명

Angularjs의 Promise 객체에 대한 자세한 설명

php中世界最好的语言
풀어 주다: 2018-03-08 10:24:03
원래의
1860명이 탐색했습니다.

이번에는 Angularjs의 Promise 객체에 대한 자세한 설명을 가져왔습니다. Angularjs의 Promise 객체 사용 시 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

약속이란 무엇인가요? 그것을 이해하려면 우리가 직면한 문제부터 시작해야 합니다. Ajax 비동기 요청을 실행할 때 요청이 성공한 후 로직을 처리하기 위해 콜백 함수를 추가해야 하지만 이 방법은 제어 흐름과 예외 처리를 희생하고 중첩된 콜백 함수에 빠질 수도 있습니다. 프로세스가 복잡하고 코드가 비대해집니다. Anglejs에서는 비동기 처리를 다룰 때 먼저 $watch 리스너를 사용하여 구현하는 것을 고려할 수 있지만, 리스너가 너무 많으면 성능에 영향을 미치고 코드 구조가 지저분해집니다.

이러한 상황을 해결하기 위해 Angularjs에서는 Promise 객체 개념을 도입했습니다. 정확하게 말하면 콜백 함수의 지루함을 효과적으로 해결하고 동기 방식을 사용할 수 있는 우아한 비동기 프로그래밍 모드입니다. 비즈니스 프로세스를 처리하는 방법. 동시에 콜백에서는 체인 쓰기가 허용됩니다. 다음으로 Promise 객체의 사용 방법을 자세히 설명하겠습니다.

promise의 기본 개념과 사용 방법

1. 그녀의 속성 및 방법에 대해 자세히 알아보세요. 여기서는 비교 및 ​​설명을 위해 예를 사용합니다.
예: A라는 고객이 B라는 회사에 웹 페이지 개발을 요청했고 B라는 회사가 3일 안에 완료하겠다고 약속했습니다. 이것은 본질적으로 고객 A가 시작한 지연된 비즈니스입니다. Angular에서. $q 객체에 대해 defer 메서드를 호출하여 지연된 객체를 생성하는 과정으로 이해할 수 있습니다.

2. 앞으로 3일 동안 고객은 개발 진행 상황에 대해 회사와 소통할 수 있습니다. 이는 확장 개체의 notify 확장명을 나타내는 메시지. 3일 후에 B사가 고객 A가 개발한 페이지를 정상적으로 전달하면 resolve 메서드는 이 지연된 비즈니스의 상태가 "완료"임을 나타내며, 회사 B가 생산 프로세스 중에 이를 실현할 수 없다고 판단하면 고객 A는 <를 호출하는 것으로 이해될 수 있습니다. ;strong>reject< /strong>메서드의 프로세스는 이 지연된 비즈니스의 상태가 "완료할 수 없음"임을 나타냅니다.

3. B사는 고객 A로부터 요구를 받았을 때 이전에 수행한 프로젝트가 현재 수요와 완전히 일치한다는 것을 발견하고 원래 완료된 프로젝트를 B사에 직접 제공하기로 결정합니다. 만족하는. 이 경우 디퍼드 비즈니스가 발생하지 않으므로 $q 객체를 통해 when 메소드를 호출하는 과정으로 이해할 수 있다.

4. 이 예를 통해 고객 A와 회사 B 모두 서로 시간이 많지 않다는 것을 알 수 있으며, 이는 Promise 객체의 중요한 특징입니다. 또한, 예제를 통해 Promise 객체가 생성되는 과정을 생생하게 이해하고 있습니다. defer(), inform(), Reject() 및 when() 메서드로 표시되는 함수도 있습니다.

이제 Promise 객체 생성 과정을 소개하겠습니다. Angular에서 Promise 객체를 생성하려면 먼저 $q 서비스를 템플릿에 삽입하고 먼저 defer 메서드를 호출하여 지연된 객체를 생성해야 합니다. 코드는 다음과 같습니다.

angular.module("a",[])
  .controller("c",["$scope","$q",function($scope,$q){  var defer=$q.defer();
}])
로그인 후 복사

이 글의 사례를 읽으신 후 더 흥미로운 방법을 찾아보세요. PHP 중국어 웹사이트에서 다른 관련 글도 주목해주세요!

관련 읽기:

WEB 인터페이스 관리 도구

오픈 애플리케이션의 텍스트를 길게 눌러 복사하여 붙여넣을 수 없는 경우 해결 방법

위 내용은 Angularjs의 Promise 객체에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿