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

node.js - nodejs redis Qの約束、それを機能させる方法は?

私はredisからいくつかの値を取得し、それらを組み合わせて最終的に送信しようとしています。しかし、私はそれらの約束を機能させることはできません。

これはgetredisのシンプルな関数です

ID今、私はそれらを入手しusernameて送りたいのですが、それをどのように機能させるのか分かりません。私はそれをコールバックで動作させることができますが、それは非常に厄介な結果なので、匿名関数をQ.fcall呼び出しの前後にラップしようとしまし.thenた。

しかし、渡された引数が多すぎるとエラーが発生し、それが機能したとしても、それが役立つかどうかさえわかりません。

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

jquery - jquery stop()は、延期された$ .when、.promise()、. done()が完了を返さないようにすべてのアニメーションを停止しますか?

jsfiddleを50〜100回更新するたびに、私が作成した新しい問題の解決に役立つstackoverflowコミュニティにアクセスできるようです。ほんとありがと!

背景:アニメーションを含むいくつかの関数があります。関数は、前の関数が完了した後に起動されます。いくつかの助けと調査により、私は$ .whenと.promise()を使用して、各関数の最初の非常に醜いコールバック文字列とsetTimeoutsを制御し始めました。

私のジレンマは次のとおりです。ある時点で、ユーザーはすべてを一時停止して、暇なときに再開したいと思うかもしれません。この機能を追加できないようです!

$('div:animated')。stop()を使用してすべてのアニメーションを一時停止できますが、.promise()はまだ解決されるため、これは一時的なものです。その動作をオーバーライドする方法はありますか?一時停止と再開を実装しやすくするのに役立つ可能性のあるリストラはありますか?

明日は、すべてのアニメーションをプロキシオブジェクトキューに追加する予定ですが、新しいオブジェクトでグローバルキューを作成すると、既存の構造でどれだけうまく機能するかわかりません。また、値がオフになっているかどうかを確認するためにブール値を追加することも検討します。関数を呼び出したり、アニメーション化したりしないでください。これらの解決策のいずれかが私が取るべき適切な方向性であるかどうかわかりませんか?

この投稿をプレビューした後、ネストされたスタートボタン機能をリファクタリングする方法も学びたいと思います。

一時停止および再開機能の実装に関するあらゆる指示をいただければ幸いです。

以下のコードは非常に単純化されており、各関数にはより多くの要素とアニメーションが含まれています。

ここにフィドル

JS:

htmlとCSS

編集 あなたの答えは私が探していた学習体験を提供してくれました。マインドシェアに本当に感謝しています!私の考案した例では、提示された回答では複数のアニメーションを同時に起動できないため、現実の問題を十分に示していない可能性がありますか?少なくとも思いませんか?たとえば、box1とbox2が同時に移動する場合や、box3が起動するとbox6も移動する場合があります。私が実装した最初の非常に醜いpromiseシステムは、各関数が多くのアニメーションで構成されていたため、多くの関数を使用していました。提案された回答でこれをどのように達成しますか?

EDIT2 2つの答え、charlietflを使用すると、同時に起動する2次関数を簡単に追加できます非常に重要です。Alnitak'sには、配列を作成してアニメーションに適用するエレガントな方法があり、アニメーションの種類を非常に簡単に変更できます(fadeOut()、fadeIn())。

したがって、私がやろうとしているのは、Alnitaks配列形式を使用するセカンダリアニメーション用のネストされた配列を作成できるように、2つを組み合わせることです。

つまり、私はまだすべての答えに取り組んでいますが、charlietflsに近づいています。Alnitakの配列を彼に追加するか、charlietflのネストをAlnitakに追加します。

これは私が今まで意図していたよりも激しくなりました。私はあなたの貢献と学ぶためのコードに感謝します....非常に有益です!

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

node.js - 何が(明示的および暗黙的に)並列に実行され、何がnode.jsで順次実行されますか?

この例は、どのように機能するかについての私の理解を混乱させますnode.js

ここで、コードの一部が順番に実行される1.と想定されるのはなぜですか?では、プッシュされたすべての要素2.で機能する保証はどこにありますか?それは、fromが非常に大きく、並列よりも機能するということでしょうか?これらのアイデアは、node.jsが最初にを処理し、次にそれをに与えるという理解から生まれました。これは実際には通常のスレッドに類似しています。Q.all(queue)queue1.numbers1.2.1.2.node.js event-loopworkers

したがって、質問は、互いに並行して実行され、1.順番に実行されますか、それとも順番に実行されますか(キュー内のすべての要素をプッシュし、その後でのみ、の各要素の処理を開始します)?このトピックのドキュメントへの直接リンクを引数に指定してください。2.node.js event-loop1.2.queue

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

javascript - nodejs の promise に問題がある

nodejs で promise を使用しようとしています (node-promise パッケージで試しています)。しかし、何の成功もありません。以下のコードを参照してください。

上記コードの出力I'll return: 35857のみで、その部分には行きませんthen

次に、コードを次のように変更します。

今回の出力はThis is what I got: -1...今回Done!は「約束」が呼び出されなかったようです。

そう:

  • 上記のコードを修正するには何が必要ですか? 明らかに私はそれを正しくやっていません:)
  • 私が約束をしているとき、node-promiseは「行くべき道」ですか、それともより良い方法/パッケージがありますか? つまり、よりシンプルで、より本番環境に対応しています。

ありがとう。

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

jquery - jQuery ajax と「when」関数

関数を使用して同時に実行する ajax リクエストがいくつかあります (5 としましょう)。jQuery.ajax

ここで、結果を同期して集計したいと思いjQuery.whenます。関数を使用してこれを実現しました。

私の問題は$.when、リクエストの1つが失敗するとすぐに戻り、他のリクエストが成功しても戻らないことです。

すべての ajax リクエスト (失敗したものと成功したもの)からすべての結果を同期して取得するにはどうすればよいですか?

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

javascript - promise に jQuery または Q.Js を使用する

私は BreezeJs を調べてますが、非同期呼び出しを処理する約束のためにQ.jsを使用しているサンプルがあります。John Papaも Q を使用しています。JQuery にも約束があります。2つの違いは何ですか?

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

javascript - ajaxリクエストは前のものに依存しています

私はこのようなことをしたい:

コードは私にとってひどいようです。

どうやったら綺麗に撮れるのかしら。いくつかのベストプラクティス?

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

javascript - SQLトランザクションとJavaScriptPromiseはどのように関連していますか?

私は最近、SQLトランザクションに似ているように見えるPromisesについて学びました。

  • トランザクションはすべてかゼロか

  • Promiseはシーケンシャルコールバックです

    それらは、非同期イベントを処理するための同じ概念の異なる実装ですか?

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

node.js - Node.jsはQ::Q.ninvokeチェーンで約束します

node.jsサーバーで発生しているメモリの問題の潜在的な原因を絞り込もうとしています。私がいつも少し不快だったコードの一部は、Qpromiseの使用です。

私の基本的な構造は次のようになります。

これは論理的に見えますか?

doSomethingElse関数もpromiseを使用している場合はどうなりますか?ここではすべてが適切にスコープされていますか?

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

function - プレーン関数でjQuery.Deferredを使用するにはどうすればよいですか?

Deferredオブジェクトのドキュメントには、オプションの関数の引数を取ることができると記載されていますが、例はありません。これはどのように使用しますか?