JaeYeongSong
Xsop의 개발일기
JaeYeongSong
전체 방문자
오늘
어제
  • 분류 전체보기 (41)
    • 💻 Python (17)
      • Python 기초 강의 (6)
      • 비트코인 자동 매매 (7)
      • 크롤링 (3)
      • 알고리즘 (1)
    • ✨ JavaScript (9)
      • Basic (8)
      • Node.js (1)
    • ⭐ HTML (9)
    • 🌟 API (2)
    • 💡 일상 (3)

블로그 메뉴

  • 홈
  • 태그
  • 게시물

공지사항

인기 글

태그

  • 글쓰기
  • JavaScript
  • 동기
  • API
  • 자료형
  • 태그
  • 비트코인 자동매매
  • input
  • 기초 문법
  • 자산 조회
  • callback
  • 비동기
  • Slack
  • 웹 페이지 크롤링
  • 지정가
  • upbit
  • Web
  • 문자열
  • 봇
  • slack api
  • HTML
  • upbit api
  • 웹
  • Web page Crawling
  • Crawling
  • 크롤링
  • 비트코인
  • 시장가
  • 웹 사이트
  • Python

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JaeYeongSong

Xsop의 개발일기

✨ JavaScript/Basic

[JavaScript] async, await (Promise를 간결하고 깔끔하게!)

2021. 11. 8. 21:40

개념정리

async : Promise를 간결하고, 코드를 깔끔하게 정리하기 위한 문법이다.

 

💡 async의 장점! async를 사용하면 코드가 동기적으로 실행되는 코드처럼 보인다.

 


async 장점

Code - Promise

// Promise
function findAndSaveUser(Users) {
    Users.findOne({})
        .then(user => {
            user.name = 'zero';
            return user.save();
        })
        .then(user => {
            return Users.findOne({
                gender: 'm'
            });
        })
        .then(user => {
            // Code
        })
        .catch(err => {
            console.error(err);
        });
}

Code - async

// async, await
async function findAndSaveUser(Users) {
    try {
        let user = await Users.findOne({});
        user.name = 'zero';
        user = await user.save();
        user = await Users.findOne({
            gender: 'm'
        });
        // 생략
    } catch (err) {
        console.error(err);
    }
}

 

async의 장점

  • Code가 동기적으로 실행되는 코드처럼 보인다.
  • Code의 길이가 줄어든다.

 


async 사용법

Code

async function Developer(name, age, part, index) {
	try {
		// Callback Function
		/*
		db.query(SELECT ?, ?, ? FROM Developer WHERE id = ?',[name, age, part, index],
		(err, dbGetD) =>;
		*/

		let dbGetD = await db.query(
		'SELECT ?, ?, ? FROM Developer WHERE id = ?',
		[name, age, part, index]
		);
		return [dbGetD[index].name, dbGetD[index].age, dbGetD[index].part];
	} catch (err) {
		console.error(err);
	}
}

 

async 사용법

  • 함수를 선언할 때 async를 붙인다.
  • try문으로 catch를 사용하여 Error가 발생하면 console.error로 Error를 출력하게 만든다.
  • Promise 앞에 await을 붙여주면 된다.

 

Code - 이름 없는 함수 생성 및 스스로 호출

(async (name, age, part, index) => {
	try {
		// Callback Function
		/*
		db.query(SELECT ?, ?, ? FROM Developer WHERE id = ?',[name, age, part, index],
		(err, dbGetD) =>;
		*/

		let dbGetD = await db.query(
		'SELECT ?, ?, ? FROM Developer WHERE id = ?',
		[name, age, part, index]
		);
		return [dbGetD[index].name, dbGetD[index].age, dbGetD[index].part];
	} catch (err) {
		console.error(err);
	}
})();

 

💡 함수를 소괄호로 감싸고, 그 뒤에 자신을 호출하기 위해서 소활호를 써주면
이름 없는 함수를 생성할 수 있고, 자동으로 호출이 된다.

 


저작자표시 (새창열림)
    '✨ JavaScript/Basic' 카테고리의 다른 글
    • [JavaScript] 타이머 사용하기
    • [JavaScript] console 사용하기
    • [JavaScript] Promise(프로미스) Callback 지옥을 해결하는 방법!
    • [JavaScript] Class 알아보기
    JaeYeongSong
    JaeYeongSong
    "I walk slowly, but I never walk backwards. - Abraham Lincoln" "나는 천천히 걷지만 결코 뒤로 걷지 않는다. - 에이브러햄 링컨" #코딩 #Python #JavaScript

    티스토리툴바