AngularJS_AngularJS에서 여러 약속을 처리하는 방법
AngularJS를 사용하여 Promise를 처리할 때 때로는 여러 Promise를 처리해야 하는 상황에 직면하게 됩니다.
가장 간단한 해결책은 각 약속에 대해 then을 적용하는 것입니다. 다음과 같습니다:
var app = angular.module("app",[]); app.controller("AppCtrl", function($q. $timeout){ var one = $q.defer(); var two = $q.defer(); var three = $q.defer(); $timeout(function(){ one.resolve("one done"); }, Math.random() * 1000) $timeout(function(){ two.resolve("two done"); }, Math.random() * 1000) $timeout(function(){ three.resolve("three done"); }, Math.random() * 1000) functioin success(data){ console.log(data); } one.promise.then(success); two.promise.then(success); three.promise.then(success); })
더 좋은 방법이 있나요?
$q.all 메소드는 약속의 배열을 허용할 수 있으며 다음과 같이 호출됩니다.
var all = $q.all([one.promise, two.promise, three.promise]); all.then(success);
약속이란 무엇인가요?
Promise는 값을 비동기적으로 처리하는 방법입니다. Promise는 함수에서 발생하는 최종 가능한 반환 값 또는 예외를 나타내는 개체입니다. 이를 에이전트의 원격 개체로 간주할 수 있습니다. . promise도 일종의 비동기 처리 방법이라면 XHR과 $.ajax와의 차이점을 생각해 보겠습니다.
페이지가 로드된 후 XHR 요청과 같이 비동기적으로 반환된 데이터에 응답하기 위해 js가 클로저나 콜백을 사용하는 것이 일반적입니다. 콜백 함수의 트리거링에 의존하지 않고 마치 반환된 것처럼 데이터와 정상적으로 상호 작용할 수 있습니다.
그럼 ng가 제안한 약속은 어떤 문제를 해결하려는 걸까요? 콜백은 오랫동안 사용되어 왔으며 일반적으로 다른 콜백에 의존하는 콜백이 있고 각 호출 후에 오류를 표시해야 하는 경우 디버깅이 매우 어려워집니다. 차이점은 Promise가 또 다른 추상화를 제공한다는 것입니다. 이러한 함수는 Promise 객체를 반환합니다.
Promise를 사용해야 하는 이유
Promise 사용의 이점 중 하나는 콜백의 고정된 사고 논리에서 벗어날 수 있다는 것입니다. Promise를 사용하면 비동기 처리 메커니즘을 동기화와 비슷하게 보이게 만들어 예상대로 반환 값과 예외 값을 캡처할 수 있습니다. 오류는 프로그램에서 언제든지 포착될 수 있으며 프로그램 예외에 의존하는 후속 코드를 우회할 수 있습니다. 이 동기화의 이점에 대해 생각할 필요가 없습니다. 따라서 Promise를 사용하는 목적은 코드를 비동기적으로 실행하는 기능을 유지하면서 기능적 조합 및 오류 버블링 기능을 얻는 것입니다.
Promise는 일급 개체이며 몇 가지 규칙이 있습니다.
• 해결 또는 거부는 하나만 호출됩니다.
• Promise가 실행되거나 거부되는 경우 해당 Promise에 의존하는 핸들러는 계속 호출됩니다.
• 핸들러는 항상 비동기식으로 호출됩니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

이 튜토리얼은 사용자 정의 Google 검색 API를 블로그 또는 웹 사이트에 통합하는 방법을 보여 주며 표준 WordPress 테마 검색 기능보다보다 세련된 검색 경험을 제공합니다. 놀랍게도 쉽습니다! 검색을 Y로 제한 할 수 있습니다

손쉬운 웹 페이지 레이아웃에 대한 jQuery 활용 : 8 에센셜 플러그인 jQuery는 웹 페이지 레이아웃을 크게 단순화합니다. 이 기사는 프로세스를 간소화하는 8 개의 강력한 JQuery 플러그인을 강조합니다. 특히 수동 웹 사이트 생성에 유용합니다.

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

핵심 포인트 JavaScript에서는 일반적으로 메소드를 "소유"하는 객체를 말하지만 함수가 호출되는 방식에 따라 다릅니다. 현재 객체가 없으면 글로벌 객체를 나타냅니다. 웹 브라우저에서는 창으로 표시됩니다. 함수를 호출 할 때 이것은 전역 객체를 유지하지만 객체 생성자 또는 그 메소드를 호출 할 때는 객체의 인스턴스를 나타냅니다. call (), apply () 및 bind ()와 같은 메소드를 사용 하여이 컨텍스트를 변경할 수 있습니다. 이 방법은 주어진이 값과 매개 변수를 사용하여 함수를 호출합니다. JavaScript는 훌륭한 프로그래밍 언어입니다. 몇 년 전,이 문장은있었습니다

이 게시물은 Android, BlackBerry 및 iPhone 앱 개발을위한 유용한 치트 시트, 참조 안내서, 빠른 레시피 및 코드 스 니펫을 컴파일합니다. 개발자가 없어서는 안됩니다! 터치 제스처 참조 안내서 (PDF) Desig를위한 귀중한 자원

JQuery는 훌륭한 JavaScript 프레임 워크입니다. 그러나 어떤 도서관과 마찬가지로, 때로는 진행 상황을 발견하기 위해 후드 아래로 들어가야합니다. 아마도 버그를 추적하거나 jQuery가 특정 UI를 달성하는 방법에 대해 궁금한 점이 있기 때문일 것입니다.

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.
