[JS] async/await


async/await


プロミスはコールバックを解決したが、コードは依然として長い.または、Promiseを使用してコールバック・ヘルプを解決しますが、適切に使用しない場合はPromiseヘルプも作成されます.

async/awaitはES 2017の構文で、promisを使用するコードを減らし、promishelを改善するために使用されます.
//Promise
const findAndSaveUser = (Users) => {
 Users.findOne({})
  .then(user => {
    user.name = 'fleuve';
    return user.save();
  })
  .then(user => {
    return user.findOne({gender : 'm'});
  })
  .catch(error => console.error(error));
}

//async/await
const findAndSaveUser = async (Users) => {
  try {
    let user = await Users.findOne({});
    user.name = 'fleuve';
    user = await user.save();
    user = await Users.findOne({gender : 'm'});
  } catch (error) {
    console.error(error);
  }
}
上記の例では、コールバックは深くないが、async/awaitを使用すると、コードの長さが著しく減少し、コードの可読性も改善される.
Promiseはthenとcatchでエラーをキャプチャし、async/awaitはtry/catchでエラーをキャプチャします.

async/awaitのPromise。allメソッドの置換


async/await for文Promiseを使用します.allを置換できます.
Peomise.全ではなくfor await of文を使用してプロセスを繰り返すことができます.
const promise1 = Promise.resolve('성공1');
const promise2 = Promise.resolve('성공2');

(async () => {
 for await(promise of [promise1, promise2]) {
   console.log(promise); // ['성공1', '성공2']
 }
})();