일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 자바스크립트 class
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 객체
- 황반석 옮김
- jquery 사용하기
- 자바스크립트 배열 할당
- python GUI 사용하기
- 자바스크립트
- 한글입력 잘림
- 맥 mysql
- 한글입력 씹힘
- 자바스크립트 객체
- 블록 스코프
- 배열 분해 할당
- 제이펍 출판
- 한글입력 오류
- max apache
- 기획자랑 사이좋게 지내고 싶다
- 한글잘림
- python tkinter 인터페이스
- 제이쿼리연결
- 생활코딩
- 자바스크립트 객체 만들기
- 닐 스미스 지음
- 비주얼스튜디오 코드
- max MySQL
- 객체지향
- SwiftUI 기반의 iOS 프로그래밍
- 맥 아파치
- 한글입력 안됨
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 자바스크립트 class
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 객체
- 황반석 옮김
- jquery 사용하기
- 자바스크립트 배열 할당
- python GUI 사용하기
- 자바스크립트
- 한글입력 잘림
- 맥 mysql
- 한글입력 씹힘
- 자바스크립트 객체
- 블록 스코프
- 배열 분해 할당
- 제이펍 출판
- 한글입력 오류
- max apache
- 기획자랑 사이좋게 지내고 싶다
- 한글잘림
- python tkinter 인터페이스
- 제이쿼리연결
- 생활코딩
- 자바스크립트 객체 만들기
- 닐 스미스 지음
- 비주얼스튜디오 코드
- max MySQL
- 객체지향
- SwiftUI 기반의 iOS 프로그래밍
- 맥 아파치
- 한글입력 안됨
Archives
- Today
- Total
java,javascript,android,php,sql,공부용,메모용
async/await 사용하기 for await of 문법 / ES2017 & ES2018 - 08 본문
javascript, jQuery & Node.js/Node.js 사용전 자바스크립트
async/await 사용하기 for await of 문법 / ES2017 & ES2018 - 08
yy_dd2 2022. 12. 8. 13:38반응형
ES2017 문법 노드 7.6부터 지원 -> async/await 사용
ES2018 문법 노드10버전 -> async/await 안에 for문을 사용하는 것
async/await 문법은 프로미스를 사용한 코드를 더 깔끔하게 사용할 수 있게 해준다
// .then .catch
function findAndSaveUser(Users) {
Users.findOne({})
.then((user)=>{
user.name = 'zero';
return user.save();
})
.then((user)=>{
return Users.findOne({gender:'m'});
})
.then((user)=>{
//...
})
.catch(err =>{
console.log(err);
})
}
// async/await으로 변경
async function findAndSaveUser(Users){
let user = await Users.findOne({});
user.name = 'zero';
user = await user.save();
user = await user.findOne({ gender : 'm'});
}
// 이렇게 변경이 가능하다 위 코드는 reject가 없어서 추가 작업으로 try catch로 감싸기
async function findAndSaveUser(Users){
try{
let user = await Users.findOne({});
user.name = 'zero';
user = await user.save();
user = await user.findOne({ gender : 'm'});
}
catch(err){
console.log(err);
}
}
위에 두 코드는 promise를 async/await으로 변경한 내용
화살표 함수도 async 사용이 가능하다
// 화살표 함수도 async 와 같이 사용 가능하다
const findAndSaveUser2 = async (Users) => {
try{
let user = await Users.findOne({});
user.name = 'zero';
user = await user.save();
user = await user.findOne({ gender : 'm'});
}
catch(err){
console.log(err);
}
}
async/await 을 for문과 같이 사용하기
for await of 문
// async/await 안에 for문을 사용하는 것
// for await of 문으로 프로미스 배열을 순회하는 내용
const promise1 = Promise.resolve('성공1');
const promise2 = Promise.resolve('성공2');
(async () => {
for await (promise of [promise1, promise2]){
console.log(promise);
}
})
// async 함수의 반환값은 항상 Promise로 감싸지는데 실행 후 then을 붙이거나 또 다른 async 함수 안에서 await을 붙여 처리가 가능하다고 함 (아직 어려워서 잘 모르겠다 차차 하다보면 더 알 수 있을 듯 하다) 책 80p 참고 (노드js교과서)
반응형
'javascript, jQuery & Node.js > Node.js 사용전 자바스크립트' 카테고리의 다른 글
Promise 콜백함수 프로미스로 대처 / ES2015 & ES6 - 07 (0) | 2022.12.08 |
---|---|
클래스 class / ES2015 & ES6 - 06 (0) | 2022.12.07 |
구조분해 할당 / ES2015 & ES6 - 05 (0) | 2022.11.16 |
화살표 함수 function을 화살표로 사용 => / ES2015 & ES6 - 04 (0) | 2022.05.06 |
객체 리터럴 / ES2015 & ES6 - 03 (0) | 2022.05.06 |
Comments