#16. async, await

Seulyi Yoo·2022년 7월 11일
0

javascript grammar

목록 보기
16/20
post-thumbnail
async function getName(){
  return "Mike";
}

console.log(getName()); // Promise { }

getName().then((name) => {
  console.log(name); // "Mike"
});

--------------------------------

async function getName(){
  return Promise.resolve('Tom');
}

getName().then((name) => {
  console.log(name); // "Tom"
});

--------------------------------

async function getName(){
  throw new Error('err...');
}

getName().catch((name) => {
  console.log(name); // Error { }
});
function getName(name) {
  return new Promise((resolve, reject) => {
    setTimeout(()=>{
      resolve(name);
    }, 1000);
  });
};

async function showName(){
  const result = await getName("Mike");
  console.log(result);
}

console.log('START'); // "START"
showName(); // "Mike" , 1초후 실행

---------------------------------

const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('2번 주문 완료');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};


console.log("START");
async function order() {
  const result1 = await f1();
  const result2 = await f2(result1);
  const result3 = await f3(result2);
  console.log(result3);
  console.log('END');
};

order();
const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      rej(new Error("err..."));
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};


console.log("START");
async function order() {
  try {
    const result1 = await f1();
    const result2 = await f2(result1);
    const result3 = await f3(result2);
    console.log(result3);
  } catch(e) {
    console.log(e);
  }
  console.log('END');
};

order();

const f1 = () => {
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('1번 주문 완료');
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('2번 주문 완료');
    }, 3000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res('3번 주문 완료');
    }, 2000);
  });
};


console.log("START");
async function order() {
  try {
    const result = await Promise.all([f1(), f2(), f3()]);
    console.log(result);
  } catch(e) {
    console.log(e);
  }
  console.log('END');
};

order();

profile
성장하는 개발자 유슬이 입니다!

0개의 댓글