MapleStory Cookie With Halo

โœจ UI/๐Ÿ’› JS

[JS]Promise/async/await : ์•ฝ์† ์‚ผ์ด์‚ฌ

๋‰ด์ด NUEY 2023. 6. 29. 00:59
๋ฐ˜์‘ํ˜•

 

Promise : ์•ฝ์†ํ•œ ๋‚ด์šฉ

 

 

โ€ป ๊ธฐ๋ณธํ˜•ํƒœ
let promise = new Promise(function(resolve, reject){     });โ€‹

 

์ต๋ช…ํ•จ์ˆ˜(ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด์€ ํ˜•ํƒœ) ์ž…๋‹ˆ๋‹ค.

 

  • ๋ฌด์Šจ ์•ฝ์†์ด์—ˆ๋Š” ์ง€ ๊ธฐ์–ตํ•˜๋ ค๋ฉด ์ด๋ฆ„์ด ๋ถ™์–ด์•ผ ๊ฒ ์ฃ .
    ๊ทธ๋ž˜์„œ ๊ผญ ๋ณ€์ˆ˜์— ๋‹ด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ์•„๋‹ˆ๋ฉด ์•ฝ์†์„ ํ•ด๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์–ด์š”.

  • ์•ฝ์†ํ•œ ๊ฑธ ์‹คํ–‰ ์„ฑ๊ณตํ•˜๋ฉด resolve

  • ์‹คํŒจํ•˜๋ฉด reject ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


 

Promise ๊ตฌ์„ฑ ์ƒํƒœ๊ฐ’ ๋ณ€ํ™”

 

 

  • Promise์˜ ๊ธฐ๋ณธ ์ƒํƒœ๊ฐ’

    • PromiseState : pending

    • PromiseResult : undefined


  • ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ

    • PromiseState : fulfilled

    • PromiseResult์—์„œ๋Š” resolve ์— ๋‹ด๊ธด ๊ฐ’์ด ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.


  • ์‹คํŒจํ•œ ๊ฒฝ์šฐ

    • PromiseState : rejected

    • PromiseResult ์—๋Š” reject ์— ๋‹ด๊ธด ๊ฐ’์ด ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

 


 

promise.then().catch().finally()
promise()๋ฅผ try/catch ๋ฌธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 


 

async : ์•ฝ์†์„ ์‹คํ–‰

 

โ€ป ๊ธฐ๋ณธํ˜•ํƒœ
async function doPromise() {   }โ€‹


async๋Š” ํ•จ์ˆ˜๋ช… ์•ž์— ๋ถ™์Šต๋‹ˆ๋‹ค.

 

  • async๋Š” Promise๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • Promise ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ๋ง์ด์ฃ .

    1. ์—ฌ๊ธฐ ์•„๋ฌด ๊ฒƒ๋„ ๋“ค์–ด์žˆ์ง€ ์•Š์€ async๊ฐ€ ๋ถ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. ์ด async ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด Promise๊ฐ€ ์ฐํž™๋‹ˆ๋‹ค.

    3. ๊ทธ๋ž˜์„œ async๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด  Promise()ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” then()ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

await : ์•ฝ์†์„ ๊ธฐ๋‹ค๋ ค

 

await์€ async ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค

 

  • ์–ด๋–ค ์•ฝ์†์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ง€ ์•Œ์•„์•ผ ๊ฒ ์ฃ ?
    ๊ทธ๋ž˜์„œ Promise ๋ณ€์ˆ˜๋ช… ์•ž์— ์ ์Šต๋‹ˆ๋‹ค.

 

โ€ป๊ธฐ๋ณธํ˜•ํƒœ
const promiseName = new Promise(function(resolve, reject){ });

async function waitPromise(){
    await promiseName();
}โ€‹

 

await์€ ์•ฝ์†์ด ์‹คํ–‰๋˜๊ณ  ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์ค๋‹ˆ๋‹ค.

 

resolve์˜ ์œ„์น˜๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค

 

 


 

  • ์ฐพ๋‹ค๊ฐ€ Promise๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด์ง€ ์•Š๊ณ 
    return์— ๋„ฃ์–ด์„œ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ๋ณด์•„ ๋งŒ๋“ค์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

    1. ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ ๋ถˆํŽธํ•˜๋‹ˆ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๋ฐ”๊ฟ”๋ณด๋ฉด

    2. ์ด๋ ‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•