ホームページ > 記事 > ウェブフロントエンド > 非同期 jQuery 関数をチェーンするときに jQuery Promise の使用を回避するにはどうすればよいですか?
連鎖非同期操作での jQuery Promise の回避
ECMAScript Promise を使用する場合は、jQuery Promise の使用を最小限に抑えることをお勧めします。ただし、jQuery の then または .when を使用せずに 2 つの非同期 jQuery 関数をチェーンすることは困難になります。
jQuery Promises を回避
Promise.resolve($.getJSON(url, params)) は jQuery Promise を隠すことができますが、連鎖操作では効果がありません。このようなシナリオで jQuery Promise を回避するには、メソッドを直接呼び出すすべての jQuery Promise を識別して明示的にキャストすることが重要です。
JavaScript Promise の相互運用性
JavaScript Promise は次のとおりです。相互運用可能です。つまり、異なる実装を組み合わせて使用できます。ただし、特定の実装が確実に使用されるようにするには、jQuery Promise を明示的にキャストする必要があります。
例
ネイティブ Promise を使用して 2 つの getJSON 呼び出しをチェーンする次のコードを考えてみましょう。
Promise.resolve($.getJSON("url1", params)) .then(function(data) { return $.getJSON("url2", params); }) .then(function(data) { // Process data });
この例では、$.getJSON は jQuery Promise を返します。 jQuery の then メソッドの使用を避けるために、Promise.resolve を使用して jQuery Promise をネイティブ Promise に明示的にキャストします。その後、ネイティブ Promise メソッドを使用してチェーンを続行し、すべての .then メソッド呼び出しでネイティブ実装が使用されるようにします。
結論
jQuery Promise を明示的にキャストすることで、次のことが可能になります。これらをネイティブ ECMAScript Promise を使用する操作にシームレスに統合することで、非同期操作をチェーンする機能を維持しながら jQuery Promise を回避できます。
以上が非同期 jQuery 関数をチェーンするときに jQuery Promise の使用を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。