JavaScript는 Promise 객체를 사용하여 비동기 프로그래밍_javascript 기술을 구현합니다.

WBOY
풀어 주다: 2016-05-16 15:12:35
원래의
1160명이 탐색했습니다.

Promise 객체는 비동기 프로그래밍을 위해 CommonJS 작업 그룹에서 제공하는 통합 인터페이스입니다. 이는 ECMAScript6에서 제공되는 Promise에 대한 기본 지원입니다. Promise를 사용하면 콜백 함수 중첩을 피할 수 있습니다. 또한 이 사양을 통해 비동기 작업을 더 쉽게 제어할 수 있습니다. Reject, Resolve, Then, catch 등의 메서드를 제공합니다.

PROMISE 사용

Promise는 ES6 이후의 기본 객체입니다. 직접 사용하려면 Promise 객체를 인스턴스화하기만 하면 됩니다.
약속 인스턴스화:

var promise = new Promise(function (resolve, reject) {
  console.log('begin do something');
  if (Math.random() * 10.0 > 5) {
    console.log(" run success");
    resolve();
  } else {
    console.log(" run failed");
    reject();

  }
});

로그인 후 복사

여기에는 콜백 메서드 함수(resolve,reject)가 정의되어 있습니다. 성공하면 resolve가 호출됩니다.
Promise.prototype.then은 Promise가 실행된 후의 콜백입니다. then 메서드를 사용하여 각각 해결 및 거부 콜백을 지정할 수 있습니다.

promise.then(function () {
  console.log(' resolve from promise');
}, function () {
  console.log(' reject from promise');
});
로그인 후 복사

실행 결과 1:

begin do something
 run success
 resolve from promise
로그인 후 복사

실행 결과 2:

begin do something
 run failed
 reject from promise
로그인 후 복사

네트워크 요청에 PROMISE 사용

getRequest = function (url) {
  var promise = new Promise(function (resolve, reject) {
    var request = require('request');
    request(url, function (error, respones, body) {
      if (error) {
        reject(error);
        return;
      }
      if (respones.statusCode == 200) {
        resolve(body)

      } else {
        reject(respones.status);

      }
    });
  });
  return promise;

};

getRequest("https://github.com/").then(function (result) {
  console.log(result);
}, function (error) {
  console.error('error', error);
});

로그인 후 복사

Promise를 사용하여 네트워크 요청을 하고, Promise를 사용하여 검색 시 Ajax 요청을 구현할 수도 있습니다.

코드 주소: https://github.com/jjz/node

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