Skip to content

Latest commit

ย 

History

History
223 lines (182 loc) ยท 4.36 KB

ch45-๋ฌธ์ œ.md

File metadata and controls

223 lines (182 loc) ยท 4.36 KB

Chapter45

๐Ÿ“Œ๋ฌธ์ œ1

true or false๋ฅผ ํŒ๋‹จํ•˜์„ธ์š”.

(1) ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋น„๋™๊ธฐ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋œ ์ดํ›„์— ์™„๋ฃŒ๋œ๋‹ค.
(2) settled ์ƒํƒœ์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ ์„ฑ๊ณต๋˜๋ฉด resolve ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ”„๋กœ๋ฏธ์Šค๋ฅผ fulfilled ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
(3) ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋Š” catch ๋ฉ”์„œ๋“œ๋ณด๋‹ค then ๋ฉ”์„œ๋“œ์˜ ๋‘ ๋ฒˆ์งธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ถŒ์žฅ๋œ๋‹ค.

๋‹ต์•ˆ ์ž‘์„ฑ

(1) 
(2) 
(3) 

๐Ÿ“Œ๋ฌธ์ œ2

๋‹ค์Œ ์ฝ”๋“œ ์ค‘, catch ์ฝ”๋“œ ๋ธ”๋ก์—์„œ ์—๋Ÿฌ ์บ์น˜๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์„ค๋ช…ํ•˜์„ธ์š”.

try {
  setTimeout(() => {
    throw new Error("Error!");
  }, 100);
} catch (e) {
    // ์—๋Ÿฌ ์บ์น˜X
  console.error("์บ์น˜ํ•œ ์—๋Ÿฌ", e);
}

๋‹ต์•ˆ ์ž‘์„ฑ



๐Ÿ“Œ๋ฌธ์ œ3

๋‹ค์Œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ์ˆœ์„œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.

setTimeout(() => console.log(1), 0); // (1)

Promise.resolve()
  .then(() => console.log(2)) // (2)
  .then(() => console.log(3)); // (3)

๋‹ต์•ˆ ์ž‘์„ฑ



๐Ÿ“Œ๋ฌธ์ œ4

๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ฝœ๋ฐฑํ•จ์ˆ˜ ํŒจํ„ด์˜ ๋‹จ์ ์—๋Œ€ํ•ด ์ž‘์„ฑํ•˜์„ธ์š”.

๋‹ต์•ˆ ์ž‘์„ฑ

(1)
(2)

๐Ÿ“Œ๋ฌธ์ œ5

(1)error๋ฅผ ์บ์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”๊ฟ”๋ณด์„ธ์š”.

try {
        setTimeout(() => {
          throw new Error("error");
        }, 1000);
      } catch (error) {
        console.log(error);
      }

(2) error๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์œ„์น˜๋ฅผ ์˜ˆ์ธกํ•ด๋ณด์„ธ์š”.

		const f1 = () => {
        throw new Error("f1 error");
        console.log("f1");
      };

      const f2 = () => {
        try {
          console.log("f2");
          f1();
        } catch (error) {
          console.log(error); // (2-1)
        }
      };

      try {
        f2();
      } catch (error) {
        console.log(error); // (2-2)
      }

๋‹ต์•ˆ ์ž‘์„ฑ

(1)
(2-1)
(2-2)

๐Ÿ“Œ๋ฌธ์ œ6

์ถœ๋ ฅ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•ด์ฃผ์„ธ์š”

const promise1 = new Promise((resolve) =>
        setTimeout(() => {
          resolve("promise1");
        }, 1000)
      );

      const promise2 = Promise.resolve(() => {
        setTimeout(() => {
          resolve("promise1");
        }, 1000);
      });

      console.log(promise1); // (1)
      console.log(promise2); // (2)
      promise1.then((res) => console.log(res)); // (3)
      promise2.then((res) => console.log(res)); // (4)

๋‹ต์•ˆ ์ž‘์„ฑ

(1)
(2)
(3)
(4)

๐Ÿ“Œ๋ฌธ์ œ7

๋‹ค์Œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์„œ์ˆ ํ•˜๊ณ , ๊ฒฐ๊ณผ์˜ ์ด์œ ๋ฅผ ์ด์•ผ๊ธฐํ•ด์ฃผ์„ธ์š”.

try {
	setTimeout(() => {throw new Error('error');}, 0);
} catch (e) {
	console.error('์—๋Ÿฌ ์บ์น˜', e);
}

๋‹ต์•ˆ ์ž‘์„ฑ


๐Ÿ“Œ๋ฌธ์ œ8

true or false๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค

(1) then ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐœ์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๊ณ , ๋งŒ์•ฝ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ ํ”„๋กœ๋ฏธ์Šค๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์•”๋ฌต์ ์œผ๋กœ ํ”„๋กœ๋ฏธ์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 
(2)ํ”„๋กœ๋ฏธ์Šค๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์ฝœ๋ฐฑ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฝœ๋ฐฑ ํ—ฌ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
(3) Promise.all์€ Promise.race์™€ ๋‹ฌ๋ฆฌ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋œ ํ”„๋กœ๋ฏธ์Šค ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด
 reject ์ƒํƒœ๊ฐ€ ๋˜๋”๋ผ๋„ ๋ชจ๋‘ ์‹คํ–‰์ด ๋๋‚˜์•ผ์ง€ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

๋‹ต์•ˆ ์ž‘์„ฑ


๐Ÿ“Œ๋ฌธ์ œ9

๋‹ค์Œ ์˜ˆ์ œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค

setTimeout(() => console.log(1), 0);
Promise.resolve()
.then(() => setTimeout(() => console.log(2), 0))
.then(() => console.log(3));

๋‹ต์•ˆ ์ž‘์„ฑ


๐Ÿ“Œ๋ฌธ์ œ10

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ, ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

new Promise((resolve, reject) => setTimeout(() => resolve('abc'), 1000))
  .then(res => console.log(`${res} then`))
  .catch(res => console.log(`${res} catch`))
  .finally(res => console.log(`${res} finally`));

๋‹ต์•ˆ ์ž‘์„ฑ


๐Ÿ“Œ๋ฌธ์ œ11

๋‹ค์Œ ๊ต์žฌ์—์„œ ๋ณด์—ฌ์ค€ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ fetchํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผํ•  ์ ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

const wrongUrl = 'https://jsonplaceholder.typicode.com/XXX/1';

fetch(wrongUrl)
  .then(() => console.log('ok'))
  .catch(() => console.log('error'));

๋‹ต์•ˆ ์ž‘์„ฑ


๐Ÿ“Œ๋ฌธ์ œ12

๊ต์žฌ์—์„œ ๋ช…์‹œํ•œ ๋งˆ์ดํฌ๋กœํƒœ์Šคํฌ ํ์— ๋Œ€ํ•ด์„œ ๋ฌด์—‡์ธ์ง€ ํƒœ์Šคํฌ ํ์™€ ๋น„๊ตํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋‹ต์•ˆ ์ž‘์„ฑ