nodeJSのメモ帳です。
735 views
asyncでもpromiseと同じことができる。
async function resolveSample() {
    return "resolve!!";
}
resolveSample().then(value=>{
    console.log(value);
});
async function rejectSample() {
    throw new Error("reject");
}
rejectSample().catch(err=>{
    console.log(err);
    console.log("end");
});
functionの前にasyncをつけて起き、コール元でthenで戻り値を拾うことができる。
throwで例外を投げた場合はcatchで拾える。
awaitはasync付きの関数の処理が終わるまで、待つことができる。
つまり同期待ちができるということ。C言語で言えばwaitforsingleObjectみたいなもの。
ただし、awaitはasyncのスコープでしか使えない。
以下のコードはawaitがasyncの外で呼ばれているためエラーになる。
async function resolveSample() {
    return "resolve!!";
}
await resolveSample();
await resolveSample();
^^^^^
SyntaxError: await is only valid in async function
asyncの中でawaitを使えばOK。
async function resolveSample() {
    return "resolve!!";
}
(async()=>{
    await resolveSample();
})();
なかなか非同期の扱いがややこしいので、こんな感じで書いておけば同期制御がしやすい。
async function test() {
    console.log("test");
        return;
}
async function main() {
    await test();
}
main();
Page 6 of 13.
        
         
                         
                    
すぺぺぺ
                    
                    本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
                    
                
https://www.osumoi-stdio.com/novel/