アカウント名:
パスワード:
async/awaitは抽象概念ですが、Promiseはかなり実装よりです。実装を通じて覚えるとあとあと苦労します。structの拡張でclassを覚えてしまうとか。
抽象概念の方は一般的な並列処理のやり方知ってりゃさほど難しくないのだけど、コールバックやポーリングで構成された従来のAPIをasync/awaitに持ち込む時はPromise関連の実装スタイルを知らないと無理なんで、JavaScriptのコレ関係で実装寄りの理解を覚えるのはしゃーない気が。
structベースで覚えるのも概念だけではよくわからん人には有用な所あるしなぁ……やりたい事とざっくりどうやってやってるのかを両方知ってる方が良いのかもしれん。
えっclassってprototypeの糖衣構文じゃないの(すっとぼけ)
でもcallbackを変換するときとか、Promiseを使う必要がある場合もある
よくにたものにfutureや関数型言語の遅延評価があります。futureは並列計算が発祥で、たとえば
fib(n-1) + fib(n-2)
なら二つのfibの計算をフォークします。fibのようにプロセスが終了して結果を使うこともあれば、探索のようにフォークしたプロセスを殺して終わることもあります。
遅延評価は「値が本当に必要になるまで計算はしない」ことを保証しています。if x y zのように、どちらかは必ず不要になる計算がよく見られます。
async/awaitは「ネットワークやI/Oなど、遅延の大きな処理を裏で実行したい」という要求から生まれたもので、外部への副作用をともなうことが多いので、「async関数一つの呼び出しにかならずawaitが一つ対応する」のが原則になります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
async/awaitだけ覚えましょう (スコア:1)
async/awaitは抽象概念ですが、Promiseはかなり実装よりです。
実装を通じて覚えるとあとあと苦労します。structの拡張でclassを覚えてしまうとか。
Re:async/awaitだけ覚えましょう (スコア:1)
抽象概念の方は一般的な並列処理のやり方知ってりゃさほど難しくないのだけど、
コールバックやポーリングで構成された従来のAPIをasync/awaitに持ち込む時は
Promise関連の実装スタイルを知らないと無理なんで、
JavaScriptのコレ関係で実装寄りの理解を覚えるのはしゃーない気が。
structベースで覚えるのも概念だけではよくわからん人には有用な所あるしなぁ……
やりたい事とざっくりどうやってやってるのかを両方知ってる方が良いのかもしれん。
Re: (スコア:0)
えっclassってprototypeの糖衣構文じゃないの(すっとぼけ)
Re: (スコア:0)
でもcallbackを変換するときとか、Promiseを使う必要がある場合もある
Re: (スコア:0)
よくにたものにfutureや関数型言語の遅延評価があります。
futureは並列計算が発祥で、たとえば
fib(n-1) + fib(n-2)
なら二つのfibの計算をフォークします。fibのようにプロセスが終了して結果を使うこともあれば、探索のようにフォークしたプロセスを殺して終わることもあります。
遅延評価は「値が本当に必要になるまで計算はしない」ことを保証しています。if x y zのように、どちらかは必ず不要になる計算がよく見られます。
async/awaitは「ネットワークやI/Oなど、遅延の大きな処理を裏で実行したい」という要求から生まれたもので、外部への副作用をともなうことが多いので、「async関数一つの呼び出しにかならずawaitが一つ対応する」のが原則になります。