問題タブ [promise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - CommonJSの「約束」抽象化の利点は何ですか?
私はこの記事を読んでいますが、promise の抽象化に関するセクションは少し複雑すぎるように思えます。以下に例を示します。
以下は、より少ないコード行で同じ結果を提供できるように思えます。
factorial - アンラムダ関数
D関数がunlambdaでどのように機能するかについて、もう少し詳しく説明する必要があると思います。現在、Y コンビネータを使用して関数 (階乗) を作成しようとしていますが、常にある種の無限ループが発生します。または、インタープリターによってはセグメンテーション違反。ここで使用したいのは D だと確信しています。私はこれを試しました:
そして、同じ無限ループがありました。unlambda で D を理解するのに役立つと思う人はいますか?
...
アンラムダ表記では、私の関数は
左から先に正常に評価された場合、うまくいくと確信していますが、よくわかりません。
前もって感謝します。
javascript - Node.jsでの約束を理解する
私が理解したことから、非同期コードを呼び出すには3つの方法があります。
- イベント、例えば
request.on("event", callback);
- コールバック、例
fs.open(path, flags, mode, callback);
- 約束
node-promiseライブラリを見つけましたが、見つかりません。
誰かが約束とは何か、なぜ私がそれを使うべきなのか説明してもらえますか?
また、なぜNode.jsから削除されたのですか?
clojure - Clojure の先物と約束はどう違うのですか?
future と promise はどちらも値を計算するまでブロックしますが、両者の違いは何ですか?
jquery - jQueryの延期と約束-.then()と.done()
私はjQueryの延期と約束について読んでいますが、コールバックを成功させるために.then()
&を使用することの違いがわかりません。Eric Hyndsがそれについて言及し、同じ機能にマップしていること.done()
は知っていますが、操作が成功するとすべてのコールバックが呼び出されるため、そうだと思います。.done()
.success()
.then()
誰かが私に正しい使い方を教えてもらえますか?
scala - Scala Futureブロックスレッドを待機しますか?
Scala Futureの結果を待つとき、それは受信のように、または反応のように動作しますか?つまり、スレッドをブロックしますか、または可能な場合は結果の後に継続をスケジュールしますか?
scala - 末尾再帰とscalazの約束
私は現在、Scalazノンブロッキング先物(別名)で遊んでいます。約束。次の関数を末尾再帰にするのに苦労しています。
ここp
で、はtypeの述語であり、I=>Boolean
はtypef
の並行関数I=>Promise[I]
です。
メソッドはアノテーションなしでコンパイルされます。
ヒントはありますか?ありがとう
jquery - jqueryの延期は失敗を成功に変える
したがって、jQueryの延期を使用し、$.when
多くのオブジェクトを並行してロードする場合。
今、b.ajax()
時々失敗しますが、私は実際には気にしません。complete()を呼び出す前に、すべての呼び出しが完了するまで待ちたいだけです。
b
残念ながら、失敗するとすぐにwhen()
拒否され、then()
コールバックが起動されることはありません。これはAFAIKの予想される動作です$.when()
が、この場合は私に適しています。
私は効果的に言う方法が欲しいです:
または、おそらく別の使用方法when()
、またはより適切な構成がありますか?
multithreading - Linux 2.6+ でのシステム コール (syscalls) の置き換え
この分野では活発な作業がないように思われるため、ユーザーランド スレッド ライブラリの作成を検討しています。C++0x の約束と未来がこのモデルに力を与える可能性があると思います。残念ながら、このモデルを機能させるには、ブロッキング呼び出しでコンテキスト スイッチを確実に切り替えることが不可欠です。そのため、非同期バージョンに置き換えるために、すべてのシステムコールをインターセプトしたいと考えています。いくつかの注意事項があります:
- ほぼすべての通常のシステムコールに非同期システムコールがあることは知っていますが、下位互換性の理由から、これは実行可能なソリューションではありません。
- Linux 2.4 以前では sys_call_table を直接変更することができましたが、これはなくなりました。
- 必要に応じてライブラリを静的にリンクしたいので、LD_PRELOAD トリックは実行できません。
- 同様に、これはユーザーランド ライブラリであると想定されているため、カーネル モジュールはオプションではありません。
- 最後に、同様の理由で ptrace() もオプションではありません。使用するためだけにライブラリに新しいプロセスをフォークさせることはできません。
これは可能ですか?