๐Ÿ“”
web_study
  • JavaScript
  • ์—˜๋ฆฌ_์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ
      • ํด๋ž˜์Šค ์˜ˆ์ œ์™€ ์ฝœ๋ฐฑํ•จ์ˆ˜
      • ์—ฐ์‚ฐ์ž boolean
      • ํ•จ์ˆ˜ ์ •์˜, ํ˜ธ์ถœ ๊ทธ๋ฆฌ๊ณ  ์ฝœ๋ฐฑ
      • ๋ณ€์ˆ˜ํƒ€์ž…๊ณผ object ์ฐจ์ด์ 
    • JavaScript async ์™€ await
    • JavaScript Promise
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ callback
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ json
    • ์œ ์šฉํ•œ 10๊ฐ€์ง€ ๋ฐฐ์—ด ํ•จ์ˆ˜๋“ค
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด(array)
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ object
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (class vs object) ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ์‚ฐ.๋ฐ˜๋ณต๋ฌธ
    • ๋ฐ์ดํ„ฐํƒ€์ž…, data types, let vs var, hoisting
    • script async ์™€ defer์˜ ์ฐจ์ด์  ์ฝ˜์†” ์ถœ๋ ฅ
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—ญ์‚ฌ
  • ์ƒํ™œ์ฝ”๋”ฉ
    • ์žฌ๊ท€ํ•จ์ˆ˜
    • ์ •๊ทœ ํ‘œํ˜„์‹
    • ๊ฐ์ฒด์ง€ํ–ฅ
      • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ์ƒ์„ฑ์ž์™€ new
      • ์ „์—ญ๊ฐ์ฒด
      • this
      • ์ƒ์†
      • prototype
      • ํ‘œ์ค€ ๋‚ด์žฅ ๊ฐ์ฒด์˜ ํ™•์žฅ
      • object
      • ๋ฐ์ดํ„ฐ ํƒ€์ž…
      • ์ฐธ์กฐ
    • ํ•จ์ˆ˜์ง€ํ–ฅ
      • ์œ ํšจ๋ฒ”์œ„
      • ๊ฐ’์œผ๋กœ์„œ์˜ ํ•จ์ˆ˜์™€ ์ฝœ๋ฐฑ
      • ํด๋กœ์ €
      • arguments
      • ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ
    • UI API, ๋ฌธ์„œ
    • ๋ชจ๋“ˆ
    • ๊ฐ์ฒด
    • ๋ฐฐ์—ด
    • ํ•จ์ˆ˜
    • ๋ฐ˜๋ณต๋ฌธ
    • ์กฐ๊ฑด๋ฌธ
    • ์ˆซ์ž์™€๋ฌธ์ž
    • ๋ณ€์ˆ˜
    • ๋น„๊ต
  • ๋…ธ๋งˆ๋“œ ์ฝ”๋”
    • Getting the Weather part One Geolocation
    • Image Background
    • TO DO List
    • Saving the User Name
    • Clock part One
    • ์กฐ๊ฑด๋ฌธ ( if , else, and, or)
    • evnet handlers
    • Function
    • Objects
    • Arrays
    • Variable(๋ณ€์ˆ˜!)
    • Javascript
  • javascript30
    • Dram Kit
    • clock
    • Css Javascript
    • Array Cardio
    • flex panels
    • type ahead
    • Canvas Draw
    • Speech Synthesis
    • Whack A Mole
  • web standard
    • script ๋ถ€๋ถ„
    • form๋ถ€๋ถ„
    • ์›น์ ‘๊ทผ์„ฑ
    • <meta>
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ_์ด๋ก 
    • ๊ธฐ๋ณธ์ง€์‹(JAVASCRIPT)
    • ๊ธฐ๋ณธ์ง€์‹(CSS)
    • ๊ธฐ๋ณธ์ง€์‹(HTML)
    • ๊ธฐ๋ณธ์ง€์‹(HTTP)
    • Dom
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ, ํ”Œ๋กœ๊ทธ์ธ
Powered by GitBook
On this page
  • async.awaitโ€‹โ€‹
  • async
  • await
  • useful promise APIs

Was this helpful?

  1. ์—˜๋ฆฌ_์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

JavaScript async ์™€ await

async.awaitโ€‹โ€‹

promise๋ฅผ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ณ  ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š”๊ฒƒ

async

// async & await 
// clear style of using promise :)
// promise๋ฅผ ์ข€ ๋” ๊น”๋”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์คŒ 

// 1.async 
async function fetchUser() {
   //do network reqeust in 10 secs....
    return 'ellie';
}
// async ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด promise๋ž‘ ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•จ

const user = fetchUser();
user.then(console.log);
console.log(user);

await

// 2. await
function delay(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function getOrange () {
    await delay(2000);
    return '๐ŸŠ';
}
// await async๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 
// ์ฒด์ด๋‹์„ ์•ˆํ•˜๊ณ  ๋™๊ธฐ์ ์€์ฝ”๋“œ๋ฅผ ์ ๋Š”๊ฒƒ ์ฒ˜๋Ÿผ ๋‹จ์ˆœํ™”๊ฐ€ ๋จ 

async function getBanana() {
    await delay(1000);
    return '๐ŸŒ';
}
// promise๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋„ˆ๋ฌด ๋งŽ์ด ์ค‘์ฒฉ๋˜์„œ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์ฝœ๋ฐฑ์ง€์˜ฅ์„ ๋งŒ๋“ค์–ด๋ƒ„ 
// function pickFruits() {
//    return getOrange()
//        .then(orange => {
//            return getBanana().then(banana => `${orange} + ${banana}`);
//        });
// }

async function pickFruits() {
        const orangePromise = getOrange(); //ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ˆœ๊ฐ„ ์ฝ”๋“œ๋ธ”๋Ÿญ ์‹คํ–‰
        const bananaPromise = getBanana(); //ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ˆœ๊ฐ„ ์ฝ”๋“œ๋ธ”๋Ÿญ ์‹คํ–‰
        const orange = await orangePromise; //๋™๊ธฐ
        const banana = await bananaPromise; //๋™๊ธฐ
        return `${orange} + ${banana}`
}
// ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋น„ํšจ์œจ์ ์ž„ ์˜ค๋ Œ์ง€ 1์ดˆ๊ธฐ๋‹ค๋ฆฌ๊ณ  ๋ฐ”๋‚˜๋‚˜ 1์ดˆ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์ƒ์„ฑํ•˜๊ธฐ ๋–„๋ฌธ์— 2์ดˆ๊ฐ€ ์†Œ์š”๋จ 
// ๊ทธ๋ž˜์„œ ๋”ฐ๋กœ ์˜ค๋žœ์ง€,๋ฐ”๋‚˜๋‚˜ Promise๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๋™์‹œ์— ์‹คํ–‰๋˜๊ฒŒ ํ•จ (๋ณ‘๋ ฌ์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰)
// ํ•˜์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Œ 

useful promise APIs

// useful promise APIs 
// ์œ„์˜ async function pickFruits() {} ์ฝ”๋“œ๋ฅผ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ •๋ฆฌํ•ด์คŒ
function pickAllFruits() {
    return Promise.all([getOrange(), getBanana()])
        .then(fruits => fruits.join(' + ')); // Orange , Banana ๋ฐ›์•„์ง€๋ฉด join
}
pickAllFruits().then(console.log) // ์„ฑ๊ณตํ•˜๋ฉด consle.log ์ถœ๋ ฅ
// promise.all ์„ ์‚ฌ์šฉํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌ 

function pickOnlyOne() {
    return Promise.race([getOrange(), getBanana]); 
    //์–ด๋–ค๊ณผ์ผ์ด๋˜ ์ฒซ๋ฒˆ์งธ ๊ณผ์ผ์„ ๋ฐ›๊ณ  ์‹ถ๋‹ค. -> ๊ฐ€์žฅ๋จผ์ € ๋ฆฌํ„ดํ•˜๋Š” ๊ฐ’๋งŒ ์ „๋‹ฌ๋จ (.race)
}

pickOnlyOne().then(console.log); // ๐ŸŒ
Previous๋ณ€์ˆ˜ํƒ€์ž…๊ณผ object ์ฐจ์ด์ NextJavaScript Promise

Last updated 3 years ago

Was this helpful?