問題タブ [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.

0 投票する
1 に答える
1802 参照

javascript - node.js エクスプレス アクション ハンドラから遅延応答を行うにはどうすればよいですか?

Expressの使用( node.js用) コールバックの後に応答を記述するにはどうすればよいですか?

以下は最小限の例です。 posix.catプロミスを返し、up結果に対して何かを行う関数であり、それを応答として送信したいと考えています。

クライアントは応答を受け取りません。

私はこれのバリエーションも試しました:

しかし、それはすべてをクラッシュさせる傾向があります:

0 投票する
4 に答える
6314 参照

javascript - CommonJSの「約束」抽象化の利点は何ですか?

私はこの記事を読んでいますが、promise の抽象化に関するセクションは少し複雑すぎるように思えます。以下に例を示します。

以下は、より少ないコード行で同じ結果を提供できるように思えます。

0 投票する
1 に答える
199 参照

factorial - アンラムダ関数

D関数がunlambdaでどのように機能するかについて、もう少し詳しく説明する必要があると思います。現在、Y コンビネータを使用して関数 (階乗) を作成しようとしていますが、常にある種の無限ループが発生します。または、インタープリターによってはセグメンテーション違反。ここで使用したいのは D だと確信しています。私はこれを試しました:

そして、同じ無限ループがありました。unlambda で D を理解するのに役立つと思う人はいますか?

...

アンラムダ表記では、私の関数は

左から先に正常に評価された場合、うまくいくと確信していますが、よくわかりません。

前もって感謝します。

0 投票する
9 に答える
99292 参照

javascript - Node.jsでの約束を理解する

私が理解したことから、非同期コードを呼び出すには3つの方法があります。

  1. イベント、例えばrequest.on("event", callback);
  2. コールバック、例fs.open(path, flags, mode, callback);
  3. 約束

node-promiseライブラリを見つけましたが、見つかりません。

誰かが約束とは何か、なぜ私がそれを使うべきなのか説明してもらえますか?

また、なぜNode.jsから削除されたのですか?

0 投票する
6 に答える
14937 参照

clojure - Clojure の先物と約束はどう違うのですか?

future と promise はどちらも値を計算するまでブロックしますが、両者の違いは何ですか?

0 投票する
11 に答える
303857 参照

jquery - jQueryの延期と約束-.then()と.done()

私はjQueryの延期と約束について読んでいますが、コールバックを成功させるために.then()&を使用することの違いがわかりません。Eric Hyndsがそれについて言及し、同じ機能にマップしていること.done()は知っていますが、操作が成功するとすべてのコールバックが呼び出されるため、そうだと思います。.done().success().then()

誰かが私に正しい使い方を教えてもらえますか?

0 投票する
2 に答える
4490 参照

scala - Scala Futureブロックスレッドを待機しますか?

Scala Futureの結果を待つとき、それは受信のように、または反応のように動作しますか?つまり、スレッドをブロックしますか、または可能な場合は結果の後に継続をスケジュールしますか?

0 投票する
2 に答える
432 参照

scala - 末尾再帰とscalazの約束

私は現在、Scalazノンブロッキング先物(別名)で遊んでいます。約束。次の関数を末尾再帰にするのに苦労しています。

ここpで、はtypeの述語であり、I=>Booleanはtypefの並行関数I=>Promise[I]です。

メソッドはアノテーションなしでコンパイルされます。

ヒントはありますか?ありがとう

0 投票する
4 に答える
2311 参照

jquery - jqueryの延期は失敗を成功に変える

したがって、jQueryの延期を使用し、$.when多くのオブジェクトを並行してロードする場合。

今、b.ajax()時々失敗しますが、私は実際には気にしません。complete()を呼び出す前に、すべての呼び出しが完了するまで待ちたいだけです。

b残念ながら、失敗するとすぐにwhen()拒否され、then()コールバックが起動されることはありません。これはAFAIKの予想される動作です$.when()が、この場合は私に適しています。

私は効果的に言う方法が欲しいです:

または、おそらく別の使用方法when()、またはより適切な構成がありますか?

0 投票する
1 に答える
611 参照

multithreading - Linux 2.6+ でのシステム コール (syscalls) の置き換え

この分野では活発な作業がないように思われるため、ユーザーランド スレッド ライブラリの作成を検討しています。C++0x の約束と未来がこのモデルに力を与える可能性があると思います。残念ながら、このモデルを機能させるには、ブロッキング呼び出しでコンテキスト スイッチを確実に切り替えることが不可欠です。そのため、非同期バージョンに置き換えるために、すべてのシステムコールをインターセプトしたいと考えています。いくつかの注意事項があります:

  • ほぼすべての通常のシステムコールに非同期システムコールがあることは知っていますが、下位互換性の理由から、これは実行可能なソリューションではありません。
  • Linux 2.4 以前では sys_call_table を直接変更することができましたが、これはなくなりました。
  • 必要に応じてライブラリを静的にリンクしたいので、LD_PRELOAD トリックは実行できません。
  • 同様に、これはユーザーランド ライブラリであると想定されているため、カーネル モジュールはオプションではありません。
  • 最後に、同様の理由で ptrace() もオプションではありません。使用するためだけにライブラリに新しいプロセスをフォークさせることはできません。

これは可能ですか?