Async await를 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) { |