Async await를 Deferred로 걷어내기
💡 핵심 요약 (TL;DR)
Async await를 Deferred로 걷어내기의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. Deferred는 제이쿼리에서 프로미스를 사용할때 쓰는 객체이다.
ES6문법으로 작업한 내용을 다 걷어내고 ES5문법에 맞춰 작업할 일이 생겼다.
Async await를 쓴 것들을 싹 걷어냈다.
ES6에서 ES5로 바로 문법을 변환해주는 사이트(링크)도 있다.
이런 일은 사실 생기면 안 되는건데… 인생은 어쩔수없다.
Async await 사용
1 | function setSelectBox(nextSelectTagId, parntsId) { |
위 함수는 아래처럼 사용가능하다.
1 | async function show(e) { |
Deferred
Promise 선언한 부분은 Deferred로 대체했다.
Deferred는 제이쿼리에서 프로미스를 사용할때 쓰는 객체이다.
먼저 $.Deferred()로 deferred 객체를 만들고 성공시 resolve호출하면 프로미스의 done이 연결되고, 실패시 reject를 호출하면 fail로 연결된다.
그리고 함수의 리턴은 항상 dfd.promise();로 해야한다.
1 | function setSelectBox(nextSelectTagId, parntsId) { |
위 함수를 아래처럼 사용하면 된다.
1 | function show(e) { |
Async await를 Deferred로 걷어내기
https://sowon-dev.github.io/2022/04/23/220424AwaitToDeferred/