> 웹 프론트엔드 > JS 튜토리얼 > 약속은 어떻게 Ajax를 캡슐화합니까? 약속 캡슐화 Ajax 구현 방법

약속은 어떻게 Ajax를 캡슐화합니까? 약속 캡슐화 Ajax 구현 방법

不言
풀어 주다: 2018-09-19 17:36:01
원래의
3320명이 탐색했습니다.

이 기사의 내용은 Promise가 Ajax를 어떻게 캡슐화하는지에 관한 것입니다. Ajax를 캡슐화한 Promise 구현 방법은 참고할만한 가치가 있으니 도움이 필요한 친구들이 참고하면 좋겠습니다.

먼저 코드 게시

var ajaxOptions = {
    url: 'url',
    method: 'GET',
    async: true,
    data: null,
    dataType: 'text',
}

function ajax(protoOptions) {
    var options = {};

    for(var i in ajaxOptions){
        options[i] = protoOptions[i] || ajaxOptions[i];
    }
    

    return new Promise(function(resolve, reject){
        var xhr = new XMLHttpRequest();

        xhr.open(options.method, options.url, options.async);

        xhr.onreadystatechange = function() {
            if (this.readyState === 4 && this.status === 200) {
                resolve(this.responseText, this);
            } else {
                var resJson = {
                    code: this.status,
                    response: this.response
                }
                reject(resJson, this)
            }
        }

        xhr.send()

    })
}
로그인 후 복사

댓글:

1, open (메서드, URL, 비동기)

메서드: GET 및 POST

url: 서버로 전송된 URL

비동기: true, synchronous false;

2, onreadystatechange

ReadyState의 값이 변경될 때마다 onreadystatechange 함수가 자동으로 실행됩니다.

3, ReadyState 상태 정보 서버 응답#🎜 🎜#

  • 0: 요청이 초기화되지 않음

  • 1: 서버 연결이 설정됨

    #🎜 🎜## 🎜🎜#

    2: 요청 수신됨
  • 3: 요청 진행 중
  • #🎜🎜 #4 : 요청이 완료되고 응답이 준비됨

  • ReadyState의 값이 4이고 상태가 200이면 해당 메소드가 준비되었음을 의미합니다. 성공적으로 호출된 메소드가 실행될 수 있으며, 그 반대의 경우도 마찬가지입니다.

위 내용은 약속은 어떻게 Ajax를 캡슐화합니까? 약속 캡슐화 Ajax 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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