nodeJSメモ帳

nodeJSのメモ帳です。

636 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/

ツイッター

@darkimpact0626