Node.js/async & await


☝️ async/await
asyncとawaitはいくつかの特殊な文法と見なすことができ、promiseを基本的に便利に使用することができ、より簡潔に1回減らすことができる.
💡 async
async function() {
  return 0;
}

//또는

async () => {
  return 0;
}
前述したように、functionの前にasyncを付けてもよいし、화살표 함수の前にasyncを付けてasyncを用いてもよく、この関数は常にpromisを返す.
💡 await
const promise = await promise
JAvascriptのデフォルトでは、awaitに遭遇した場合、処理プロセスが待機します.簡単に言えば、awaitを有するコードは、プロセスが非待機状態にある場合にのみ実行される.
💻 Example
function findAndSaveUser(Users) {
    Users.findOne({})
        .then((user) => {
            user.name = 'asdf';
            return user.save();
        })
        .then((user) => {
            return Users.findOne({ gender: 'm'})
        })
        .then((user) => {
            // 생략
        })
        .catch(err => {
            console.error(err);
        })
}
上のコードはawait/async構文を使用していないコールバック関数コードです.上記のコードはawait/async構文で置き換えることができます.
async function findAndSaveUser(Users) {
    let user = await Users.findOne({})
    user.name = 'asdf'
    user = await user.save();
    user = await Users.findOne({ gender : 'm'})
    // 생략
}
コールバックを変更することで、コードが確かに短くなっていることがわかり、便利に見えます.関数宣言子の前にasyncを追加し、Users.findOne()の前に待機を追加し、プロセスの解決を待ってからスキップします.
今は簡単に説明するだけですが、これから直接ログ人気を実現したり、CRUDシステムを実施したり、もっと多くの使用をしたりします.新しいものが現れたら、追加の説明をします.
ソース
Node.教科書
MDN Web docs