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/