問題タブ [es6-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.
javascript - プロミスを使用すると、非同期コールバック関数から外側のスコープが隠されます
私のコードは現在、次の形式を取ります。
その場合、なぜ x は定義されていないのですか?
代わりに(望ましくない)約束を省略した場合、次のようになります。
その後、x に正常にアクセスできます。約束を守りながら x にアクセスするにはどうすればよいですか?
javascript - promise.all はどのように機能しますか?
私は Promise を掘り下げ始め、興味深い Promise.all を見つけました。
MDN には次のように記載されています。
Promise.all(iterable) メソッドは、 iterable 引数のすべての promise が解決されたときに解決される promise を返します。
これは基本的に、引数リスト内のすべての約束が解決された後、設定された約束が解決されることを意味します。実装してみました。私は単純に ajax 呼び出しを約束しました。
これはうまくいきます。しかし、Promise.all を追加しようとすると、エラーがスローされました。
私が言ったように、これは「Promise.allの引数1はシーケンスに変換できません」というエラーをスローしました。だから私はpromise.allの意味を理解していないと思います。それはどのように機能しますか?
javascript - 2番目の約束が最初の約束に依存している場合、2つの約束を連鎖させる正しい方法は?
破滅のピラミッドを回避しながら、JS Promises を使用してチェーン 2 JQuery 非同期呼び出しを行うにはどうすればよいですか? 次のように、「JQuery」プロミスを実際のプロミスに変換できることを知っています。
1 つの約束だけを待ちたい場合は、次のようにすることができます。
2 つの異なる ajax 呼び出しが行われるのを待ちたい場合は、次のようにします。
ただし、ある呼び出しを別の呼び出しの後にしたい場合、これは機能しません。
どういうわけか、「do stuff」関数で構築された約束で .then() を呼び出したいと思います。これを行うための慣用的な方法は何ですか?
javascript - 2つの非同期jQuery関数をチェーンするときにjQueryの約束を完全にかわす方法は?
jQueryライブラリの「約束」の回避を主張する新しいEMCAの約束に関する多くのチュートリアルを見てきました。彼らは通常、次のようなことを行うことでそれらをかわすことができると言います:
ただし、2 つの非同期 jQuery 関数を一緒にチェーンする必要がある場合、これは実際には機能しません。jQuery の then() または .when() を使用せずに、2 つの getJSON 呼び出し (2 番目の呼び出しが最初の呼び出しに依存する) をチェーンするにはどうすればよいですか?
代わりに、Promise.all などを使用したいだけです。
同様の質問の問題は、jquery と EMCA の約束をインターリーブすることだと思いますか?
javascript - ES6 Promise チェーンで拒否を伝播する方法は?
通常、2 つの Promise オブジェクトは関数呼び出し全体で作成されます。私は何が起こると予想されるかを示す約束をまとめました:
これにより、拒否が親の約束に伝播されたはずです。外部の約束で rejectCall_2 をキャプチャするにはどうすればよいですか?
javascript - $.Deferred() に相当する ES2015
私はプロジェクトに Babel を使用していますが、非常に基本的な問題で立ち往生しています。私はjQueryのDeferredオブジェクトに非常に慣れており、それに相当するES2015を見つけるのに苦労しています.これが私が基本的に欲しいものです:
この単純な遅延を正しくする正しい方法は何ですか?
ロイハウの答えで編集:
javascript - 同期機能の約束
だから、私はこのようなコードを持っています。
みたいな形にしたいです。
次の doSomethingSync を変更する必要があります。
に:
また:
javascript - promise で `x = x.then()` は何をしますか?
私は約束に対する斬新なアプローチを持ついくつかのコードを理解しようとしています:
.then
これは、通常の連鎖アプローチとどう違うのですか? 安全に使用できますか?
javascript - promise が解決された後に値を解決する
私はこのようなコードを持っています..いくつかのコンテンツを取得し、すべてがロードされた後、何かをしたいと思います。そのため、Promise.all を使用して、後で解決された値にアクセスします。しかし、それは値を与えていますが、Promise {' content here'} のようです。(console.log を参照してください。) 正規表現を使用して抽出するつもりでしたが、文字列ではなくキーのないオブジェクトの型を確認しますか? なんで?