問題タブ [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 投票する
2 に答える
2861 参照

c++ - pthread_once() の競合状態?

std::future別のスレッドで設定されるのを待っているスレッドがありますstd::promise

編集: 永久にブロックする模範的なアプリで質問を更新しました:

更新:代わりにa を使用するpthread_barrierと、以下のコードはブロックされません。

これを説明するテストアプリを作成しました:

非常に基本的に、クラスは実行関数に aを設定するa をfoo作成し、コンストラクターでそれが設定されるのを待ちます。設定すると、カウントがインクリメントされますthreadpromisepromiseatomic

foo次に、これらのオブジェクトの束を作成し、それらを破棄して、自分のcount.

これを 1000 スレッドのループで実行すると、競合が発生するまで数回実行するだけでfutures済み、そのうちの 1 つが起動されないため、アプリが永久に動かなくなります。

SIGABRTがアプリになった場合、結果として得られるスタック トレースは、future::wait スタック トレースは以下のとおりです。

私は自分のコードで何も悪いことをしていないと確信していますよね?

これは pthread 実装の問題ですか、それとも std::future/std::promise 実装の問題ですか?

私のライブラリのバージョンは次のとおりです。

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

java - Play で複雑な promise を構築する

メソッドから promise を返す必要があるとします。これは、外部リソースといくつかの計算に依存します。私が想像しているのは次のようなものです:

何に使えcallWhenReadyますか?これは基本的にはjQuery.promise()振る舞いと同じです。

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

c++ - std::promise とは何ですか?

私はC++ 11のstd::threadstd::asyncおよびstd::futureコンポーネント(たとえば、この回答を参照)にかなり精通しています。これらは簡単です。

std::promiseしかし、それが何なのか、何をするのか、どのような状況で最もよく使われるのか、私にはよくわかりません。標準ドキュメント自体には、そのクラスの概要を超える多くの情報は含まれておらず、std::threadも含まれていません。

誰かstd::promiseが必要な状況と、それが最も慣用的な解決策である状況の簡単で簡潔な例を教えてください。

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

jquery - 各()との関数でのjQueryの約束

自分の関数を呼び出して、終了するまで待ちます。トランジションが終了したら、次の機能を開始したいと思います。私のjsfiddlehttp://jsfiddle.net/hrm6w/をご覧ください

console.log( "upperfinished")はconsole.log( "promisefinished")とすべてのアニメーションが終了した後に開始する必要があります。

そして、各オブジェクトのすべてのアニメーションが終了した後、次のアクション(関数)を開始したいと思います。

必要なのはpromise()関数だけだと思いますが、これが機能しません。

どんな助けでもいただければ幸いです。

0 投票する
3 に答える
29071 参照

node.js - Qを使用してnode.jsプロミスチェーンを適切に中止するにはどうすればよいですか?

多くのステップがあるシナリオで「運命のピラミッド」を回避するために、Node.jsのQモジュールを使用しています。例えば:

基本的に、これは機能しているようです。いずれかのタスクステップでエラーがスローされた場合、それはコールバックに渡されます(ただし、node.jsの約束は初めてなので、改善を歓迎します)。ただし、タスクチェーンを早期に中止する必要がある場合は問題があります。たとえば、result1が正常に返された場合、コールバックを早期に呼び出して残りを中止したい場合がありますが、そうしようとしても失敗します...

この例では、両方の「中止」が表示されます。と「ステップ3を実行しています...」が印刷されます。

私はここでいくつかの基本原則を誤解しているだけだと確信しているので、助けていただければ幸いです。ありがとう!

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

jquery - 「最後の1つが勝つ」jQuery-Ajaxキューを構築するにはどうすればよいですか?

ページに3つの要素があると仮定します。

  • 数値の連絡先IDを受け入れるテキストボックス。
  • クリックすると、テキストボックスに入力された連絡先IDの連絡先情報を取得するようにサーバーにAjaxリクエストを送信するボタン。
  • divサーバーから取得した連絡先情報を表示するA。

ここで、さらに2つのことを想定します。

  • サーバーからの往復には5秒かかると予想されます。
  • 5秒間の遅延中に、ユーザーがテキストボックスに別の番号を入力してボタンをクリックした場合、Webページは最初のajax結果を無視し、2番目の結果(つまり、最新のAjax要求)を尊重する必要があります。

私の質問:

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

javascript - jQuery .promise() を使用して clearInterval() を呼び出す

私は最近、独自のカスタム効果を作成するために、setInterval と clearInterval を使って多くの実験を行っています。私が取り組んでいることの 1 つは、グローバル スコープの外にとどまりながら間隔をクリアする効率的な方法です。.promise() を使用して clearInterval() を呼び出すことで、読みやすさを改善し、パフォーマンスの向上の可能性を探っています (以下は、私がやろうとしていることの例です)。

最近まで、組み込み関数を使用して間隔を設定およびクリアしていました (例):

PS オリジナルを投稿できなくて申し訳ありません。バージョン管理システムが破損していました。また、for ループや .each() を簡単に使用できるため、この例がばかげていることはわかっていますが、これは単なる例です。ループを使用したくない場合もあります。

これは私の最初の投稿なので、受け入れられている慣習とは異なることをする場合は、事前にお詫び申し上げます。今後投稿を改善するためにできることがあれば教えてください - 私はいつでも建設的な批判を受け入れます :)

ありがとう!

0 投票する
7 に答える
7596 参照

c++ - Deferred/Promise pattern in C++

I've recently discovered, and fallen in love with, the Deferred/Promise pattern used in jQuery. It just encapsulates so many async use cases, including the wonderful chaining, filtering ability, that I can't believe I missed it for so long.

I've just finished refactoring my AS3 code to use the excellent CodeCatalyst/promise-as3 library (https://github.com/CodeCatalyst/promise-as3), and so started thinking about going back to my C++ code and seeing how I could implement the pattern there.

Before I started coding this myself, I checked to see if it had been done before, and discovered the std::future/std::promise (and boost equivalents), but they are very heavy (they seem use real threads etc, and have a heavy template syntax).

So, my question is: Is there are lightweight, pure C++ implementation of the Deferred/Promise pattern, jQuery-style?

refs:

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

javascript - 複数の非同期関数を連鎖させる

序章

私はこれから来る質問があります:

非同期関数を呼び出すループ

promisesのようなパターン(SDKで開発されたアドオンのjsdeferredライブラリ)を使用して非同期関数を呼び出すループを取得したら。

新しい非同期関数をこのリクエストにチェーンしたいと思います。たとえば、ブラウザのタブを開きます。準備ができるまで実行を続行したくありません。

問題

だから私はこれに到達します:

そして、私が得た結果は、ループの反復ごとに、以前のすべての要求を再度実行することです!そのため、コンソールに次のログが表示されました。

明らかに私が期待したのは:

質問

私が約束のパターンを理解していないことは明白です。私は2つのAPIでたくさん読みました:

1つ目は今まで使っていたものです。2つ目は、ライブラリを要求しようとするとエラーが発生します。

ですから、私の質問は、promiseの優れたチュートリアルや、複数の非同期関数のチェーンに関する優れた例を知っているかどうかです。または、それを行う方法を知っている場合、どのようにそれを行いますか。

ありがとうございました

編集:行(+)を与えるエラー

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

javascript - Jquery Promise のチェーン

私は単純な一連のイベントを持っています:

  1. メタデータ テーブルから列を取得する (非同期)
  2. 選択した列をロードする (非同期)
  3. レンダリング リスト

以前はこれらの関数を連鎖させ、それぞれが完了すると次の関数を呼び出していました。ただし、何が起こっているのかはあまり明白ではありません (呼び出すgetColumnsFromMetaと、ビューが取り込まれます)。したがって、明確さとコードの再利用のために、これらを使用してリファクタリングしたいと思いJQuery Promisesます。私は以前にプロミスを使用しました。しかし、どうすれば 2 つ以上連鎖させることができるでしょうか?getColumnsFromMeta ().then(loadSourceFromDatabase /*some arguments*/) //.then(renderList)?;

の例を次に示しgetColumnsFromMetaます。