問題タブ [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.
node.js - テストを同期的に実行できるように Promise をスタブするにはどうすればよいですか?
モジュールの依存関係の 1 つをスタブ化することにより、モジュールを単体テストしようとしています。UserManager
モジュールの簡略化されたバージョンは次のとおりです。
解決済みの Promise を返すように返すUserManager のsaveCode
関数をスタブしていますが、それが呼び出されたとき、残念ながらアサーションの時点ではまだ呼び出されていません。Promise
assert
res.redirect
res.redirect
単体テストの簡略版は次のとおりです。
テスト中のメソッドが同期的に動作するように、promise を適切にスタブするにはどうすればよいですか?
ember.js - Ember.PromiseProxyMixin の使用時に拒否されたプロミスをバブルアップする方法
AJAX データ呼び出しと Ember RSVP Promises で Ember の PromiseProxyMixin を使用しています。各ルート/テンプレートにエラー処理を組み込むのではなく、次のように、拒否されたプロミスをアプリケーション ルートのエラー ハンドラーにバブルアップしたいと考えています。
現在、Promise が拒否された場合、拒否された Promise は Application ルートにバブルアップしているようには見えません (これは、PromiseProxyMixin が Promise の .fail() 関数にアタッチし、それ以上のバブルを防止するためですか?もしそうなら、続行する方法はありますか?泡立ち?)
PromiseProxyMixin を使用して、拒否されたプロミスがアプリケーション ルートにバブルアップすることを許可することは可能ですか?
javascript - promise を使用した画像の増分読み込み
私は同じ画像を読み込もうとしていますが、約束の助けを借りて、最初に1.png、次に2.png、次に3.pngを1つずつ異なる解像度で読み込もうとしていますが、コードを実行すると3.pngのみが読み込まれます画像、私は何を間違っていますか?
最初の提案の後の新しいコード、まだ同じ問題に直面しており、クロム開発ツールで見られるようにロードされる画像は1つだけです
javascript - Ember.RSVP の条件付きプロミス
変数が設定されている場合に何かをする必要がある単純な if else シナリオがあります。それ以外の場合は、else 部分で実行します。
フラグが設定されている場合は、doSomething() と doNextThing() を実行する必要があります
doSomething と doNextThing の両方が promise を返します。これを実装する最良の方法は何ですか?
現在、私のコードは次のようになります。
よりクリーンなコード セグメントで 2 つをエレガントに組み合わせる最良の方法は何ですか?
私は試した:
しかし、これは機能しません。約束 doSomething は決して解決されず、コードはすぐに返されるようです。また、次のような上記のいくつかのバリエーションを試しました。
と:
しかし、最初のオプションを除いて、何も機能しません。だから、私の質問は - これを達成するためのより良い/エレガントな方法はありますか?
javascript - Ember ルート/コントローラー間の実行フローを理解する
以下のような「ボックス」ルート/コントローラーがあります。
私のルートは次のようになります。
私のテンプレートは次のようになります
私の doPost メソッドは以下のようになります。
上記の設定を踏まえて、実行の流れ/順序を理解したいと思いました (つまり、さまざまなフックについて)。私はデバッグしようとしていましたが、あるクラスから別のクラスに飛び続けました。また、具体的な質問が 2 つあります。
「アクティブ化」フックが最初に起動されることを期待していましたが、そうではないことがわかりました。最初に「gridParas」フック、つまり「activate」フックを実行します。テンプレートに「gridParas」を指定したせいでしょうか?
/myService1 に対して this.doPost() を実行するときは、「同期」リクエストでなければなりません。そうしないと、実行の流れが変わり、エラーが発生します。実際には、 filterCols() コントローラー内のコード、つまり this.set('gridVals.layout', this.get('layouts')[this.get('type')]) を、応答を受信した後にのみ実行したい/myService1 から。ただし、現時点では、「同期」リクエストを使用してそれを行う必要があります。そうしないと、「非同期」を使用すると、実行が filterCols() に移動し、まだ応答がないため、エラーがスローされます。
追加するために、私はEmber v 2.0を使用しています
promise - promise 値を通常値として解決する方法
promise を通常の数値に解決するにはどうすればよいでしょうか。
最初に非同期操作を呼び出さなければならない分度器自動化のユースケースがあり、次にその結果値は約束されるべきではありません。
分度器フレームワークを使用しています
編集