問題タブ [rsvp-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 に答える
2359 参照

node.js - テストを同期的に実行できるように Promise をスタブするにはどうすればよいですか?

モジュールの依存関係の 1 つをスタブ化することにより、モジュールを単体テストしようとしています。UserManager

モジュールの簡略化されたバージョンは次のとおりです。

解決済みの Promise を返すように返すUserManager のsaveCode関数をスタブしていますが、それが呼び出されたとき、残念ながらアサーションの時点ではまだ呼び出されていません。Promiseassertres.redirectres.redirect

単体テストの簡略版は次のとおりです。

テスト中のメソッドが同期的に動作するように、promise を適切にスタブするにはどうすればよいですか?

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

ember.js - Ember.PromiseProxyMixin の使用時に拒否されたプロミスをバブルアップする方法

AJAX データ呼び出しと Ember RSVP Promises で Ember の PromiseProxyMixin を使用しています。各ルート/テンプレートにエラー処理を組み込むのではなく、次のように、拒否されたプロミスをアプリケーション ルートのエラー ハンドラーにバブルアップしたいと考えています。

現在、Promise が拒否された場合、拒否された Promise は Application ルートにバブルアップしているようには見えません (これは、PromiseProxyMixin が Promise の .fail() 関数にアタッチし、それ以上のバブルを防止するためですか?もしそうなら、続行する方法はありますか?泡立ち?)

PromiseProxyMixin を使用して、拒否されたプロミスがアプリケーション ルートにバブルアップすることを許可することは可能ですか?

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

javascript - promise を使用した画像の増分読み込み

私は同じ画像を読み込もうとしていますが、約束の助けを借りて、最初に1.png、次に2.png、次に3.pngを1つずつ異なる解像度で読み込もうとしていますが、コードを実行すると3.pngのみが読み込まれます画像、私は何を間違っていますか?

最初の提案の後の新しいコード、まだ同じ問題に直面しており、クロム開発ツールで見られるようにロードされる画像は1つだけです

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

javascript - Ember.RSVP の条件付きプロミス

変数が設定されている場合に何かをする必要がある単純な if else シナリオがあります。それ以外の場合は、else 部分で実行します。

フラグが設定されている場合は、doSomething() と doNextThing() を実行する必要があります

doSomething と doNextThing の両方が promise を返します。これを実装する最良の方法は何ですか?

現在、私のコードは次のようになります。

よりクリーンなコード セグメントで 2 つをエレガントに組み合わせる最良の方法は何ですか?

私は試した:

しかし、これは機能しません。約束 doSomething は決して解決されず、コードはすぐに返されるようです。また、次のような上記のいくつかのバリエーションを試しました。

と:

しかし、最初のオプションを除いて、何も機能しません。だから、私の質問は - これを達成するためのより良い/エレガントな方法はありますか?

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

javascript - Ember ルート/コントローラー間の実行フローを理解する

以下のような「ボックス」ルート/コントローラーがあります。

私のルートは次のようになります。

私のテンプレートは次のようになります

私の doPost メソッドは以下のようになります。

上記の設定を踏まえて、実行の流れ/順序を理解したいと思いました (つまり、さまざまなフックについて)。私はデバッグしようとしていましたが、あるクラスから別のクラスに飛び続けました。また、具体的な質問が 2 つあります。

  1. 「アクティブ化」フックが最初に起動されることを期待していましたが、そうではないことがわかりました。最初に「gridParas」フック、つまり「activate」フックを実行します。テンプレートに「gridParas」を指定したせいでしょうか?

  2. /myService1 に対して this.doPost() を実行するときは、「同期」リクエストでなければなりません。そうしないと、実行の流れが変わり、エラーが発生します。実際には、 filterCols() コントローラー内のコード、つまり this.set('gridVals.layout', this.get('layouts')[this.get('type')]) を、応答を受信した後にのみ実行したい/myService1 から。ただし、現時点では、「同期」リクエストを使用してそれを行う必要があります。そうしないと、「非同期」を使用すると、実行が filterCols() に移動し、まだ応答がないため、エラーがスローされます。

追加するために、私はEmber v 2.0を使用しています

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

promise - promise 値を通常値として解決する方法

promise を通常の数値に解決するにはどうすればよいでしょうか。

最初に非同期操作を呼び出さなければならない分度器自動化のユースケースがあり、次にその結果値は約束されるべきではありません。

分度器フレームワークを使用しています

編集