이 기사는 ES6 및 ES7 비동기 처리에 대한 자세한 설명(코드 예제)을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Master ES6/ES7 비동기 처리를 한 번에
시나리오를 가정해 보세요. 여자친구가 쇼핑하러 나갈 때까지 기다리세요. 5초, 혼자서 게임하기 이미...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); }) }
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 } }
위 내용은 ES6 및 ES7 비동기 처리에 대한 자세한 설명(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!