私は約束を返す非同期関数を持っています。操作は1回だけ実行する必要があります。その機能のすべての呼び出し元に同じPromiseを返すようにしたいが、ある呼び出し元の.catch()
が別の呼び出し元に影響することは望ましくない。私は約束をクローンしたり、別の方法でこれを実装できますか?プロミスをクローンすることはできますか?
答えて
しかし、ある発信者の
.catch()
が別の発信者に影響することは望ましくありません。
(あなたがコールバックを連鎖していない限り、そうでない場合)。
私は、その関数のすべての呼び出し元が、ちょうどそれを行うのと同じ約束
を取り戻すしたいです。約束は不変の値です。
私は約束をクローンできますか?
あなたが本当に元の約束(それが満たしたときに満たすか、それは拒否したときに拒否)に従いますの異なるオブジェクトが必要な場合は、引数なしでthen
メソッドを使用することができます。
var clone = promise.then();
console.assert(clone !== promise);
1:あなたが適切な約束ライブラリを使用していると仮定します。私はthen
コールバックの結果が約束の状態を変えた図書館のケース(古いjQuery?)を思い出すことができると思います。
2:少なくともその解決行動では、すべての約束は、依然として単なる目的です。
3:あなたはしていません。あなたは本当にすべきではありません。私はタイトルの質問に答えるだけですが、あなたは奇妙なことをやめてください。
最初のオブジェクトの後に別個のオブジェクトが必要なのはなぜですか?同じ解決/拒否の複数のフォロワーが必要な場合は、複数のコードをすべて同じ約束で使用しないでください。 – jfriend00
@ jfriend00:人々は約束で奇妙なことをやっているのですが、あなたが共有したくない*オブジェクト*のカスタムプロパティを考えていました。また、複数の異なる約束のインスタンスを渡すと、(実装のセマンティクスに応じて)相殺を行う可能性があります。しかし、通常の状況下では、まったく同じ約束を再利用すべきです。この答えをより明確にする必要がありますか? – Bergi
私はあなたがおそらく99%の時間(基本的にいつもあなたが約束オブジェクト自体に非標準的なことをしているのでなければ)をもっと明確にすべきだと思います。あなたは別の約束を必要とせず、同じ約束。 – jfriend00
- 1. Javaでクラスをクローンすることはできますか?
- 2. Mercurialクローンを最適化することはできますか?
- 3. ファイルディスクリプタをクローンすることはできますか?
- 4. WebStormでgitリポジトリをクローンすることはできません
- 5. 私はgitツリーをクローンすることができません
- 6. リモートロケーションからgit configをクローンすることはできますか?
- 7. Script.aculo.usのゴースティングでクローンをカスタマイズすることはできますか?
- 8. レポ。 Bitbucketでクローンを無効にすることはできますか?
- 9. サブモジュールを使ってgit repoをクローンすることはできますか?
- 10. gitリポジトリをgithubアカウントに直接クローンすることはできますか?
- 11. githubからpythonパッケージをクローンするときにどこにクローンする必要がありますか?
- 12. は、クローン後にプロジェクトクラスを見ることができません
- 13. Javascriptプロミスの戻り値はログに記録できますが使用することはできません
- 14. Rails開発マシンを「クローン」することは可能ですか?
- 15. ES6の約束をクローンすることは可能ですか?
- 16. gitクローンの後にプルリクエストを行うことはできますか?
- 17. プロミスの周りに頭を上げることはできません
- 18. 角度プロミス:値を得ることができない
- 19. どのように私はリストのような何かにプロミスを得ることができますか?
- 20. クローンがhttp2から利益を得ることができます
- 21. 私はgitリポジトリをクローンした場所をどこから知ることができますか
- 22. GitLabスニペットをクローンできますか?
- 23. クローンの方法はどこですか
- 24. これはOKクローン機能ですか?
- 25. JQueryプロミスとES6プロミスを混ぜる
- 26. プロミスをどのように解決し、保留することができますか?
- 27. httpでgit reposをクローンすることはできません。 info/refsが見つかりません
- 28. gitクローンの後でシンボリックリンクを自動的に作成することはできますか
- 29. HDDを別のHDDにコピーしてHDDをクローンすることはできますか
- 30. jQuery - クローン作成中に選択ボックスのオプションを変更することはできますか?
[Memoization of promise-based function]の可能な複製(http://stackoverflow.com/q/28763057/1048572)? – Bergi