3
継続とコールバックの違いは何ですか?
私は継続についての啓蒙を求めてウェブ全体をブラウジングしてきましたが、最も単純な説明が私のようなJavaScriptプログラマーをまったく混乱させてしまうのは気が遠くなるような気がします。これは特に、ほとんどの記事で、Schemeのコードによる継続について説明したり、モナドを使用したりする場合に当てはまります。 ついに私は継続の本質を理解したと思うようになったので、私が知っていることが実際に真実であるかどうかを知りたかったのです。私が本当だと思うことが実際には本当ではない場合、それは無知であり、悟りではありません。 だから、これが私が知っていることです: ほとんどすべての言語で、関数は明示的に値(および制御)を呼び出し元に返します。例えば: var sum = add(2, 3); console.log(sum); function add(x, y) { return x + y; } コードスニペットを実行する結果を非表示スニペットを展開 これで、ファーストクラスの関数を持つ言語では、呼び出し元に明示的に戻る代わりに、コントロールと戻り値をコールバックに渡すことができます。 add(2, 3, function (sum) { console.log(sum); }); function add(x, y, cont) { cont(x + y); } コードスニペットを実行する結果を非表示スニペットを展開 したがって、関数から値を返す代わりに、別の関数を続けます。したがって、この関数は最初の関数の続きと呼ばれます。 それでは、継続とコールバックの違いは何ですか?