ES6 및 ES7 비동기 처리에 대한 자세한 설명(코드 예)

不言
풀어 주다: 2018-11-17 15:49:09
앞으로
2368명이 탐색했습니다.

이 기사는 ES6 및 ES7 비동기 처리에 대한 자세한 설명(코드 예제)을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Master ES6/ES7 비동기 처리를 한 번에

시나리오를 가정해 보세요. 여자친구가 쇼핑하러 나갈 때까지 기다리세요. 5초, 혼자서 게임하기 이미...

ES6 Promise 처리 방법

promise 쓰기 방법
약속 연쇄 호출 방법, 비동기 처리가 성공한 경우에만 으로 돌아갑니다. then(data => {} ) 비동기 처리 성공 후 데이터 가져오기
비동기 처리에서 오류가 발생하면 .then(err => {})가 호출되어 예외가 발생합니다
즉,.then( data => {}, err => {}) 메서드에는 매개변수로 두 개의 콜백 함수가 있습니다
또는 두 번째 방법으로 작성하는 방법이 있습니다.then(data => {}). catch(err => {})#🎜🎜 #

function waiting (ms) {
    return new Promise ( (resolve, reject) => {
        if(ms > 5000) {
            reject('long time')
        } else {
            setTimeout(() => {
                resolve(ms);
            }, ms)
        }
    })
}


function main () {
    waiting(3000).then( success => {
        console.log(success);
    }, err => {
        console.log(err)
    })
}

// 或者
function main() {
    waiting(3000).then(data => {
        console.log(data)
    }).catch(err => {
        console.log(err);
    })
}
로그인 후 복사
ES7 Async/Await 처리 방법

async는 이 함수에 비동기 작업이 있음을 나타내며, Wait는 항상

awit가 발생하면 함수는 실행을 중지하고 비동기 작업이 끝날 때까지 기다린 후 다음 명령문을 실행합니다.
비동기 작업으로 얻은 결과는 콜백 함수 해결
예외는 거부 콜백 함수 매개변수를 통해 획득됩니다
참고, 캡처 예외가 발생하면 예외를 획득하기 위해 비동기 함수 본문에서 try catch 메서드를 사용해야 하는 경우가 많습니다

let sleep = ms => {
    return new Promise ( (resolve, reject) => {
        if(ms > 5000) {
            reject('long time')
        } else {
            setTimeout(function() {
                resolve(ms)
            } ,ms)
        }
    })
}

let play = (ms) => {
    console.log(`I wait you ${ms} s`)
}

let main = async () => {
    try{
        let result = await sleep(3000);
        play(result)
    } catch (err) {
        throw err
    }
}
로그인 후 복사
참고: Wait waiting은 무엇입니까? Promise는 해결 콜백 함수에서 데이터를 반환하겠다는 약속입니다#🎜🎜 #

위 내용은 ES6 및 ES7 비동기 처리에 대한 자세한 설명(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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