1

JavaScript コード全体で、AJAX リクエストが次の jQuery 2.x パターンを使用して実行されることが多いことに気付きました。

$.ajax({
     ...
})
.done(function (data) {
     ...
});

メソッド内で見つかったコードはdone、応答が受信された後に実行されます。

jQuery 3.x のベータ リリース ノート ( https://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/ ) を読んだ後、次の記述に気付きました。

jQuery.ajax の特別なケースの Deferred メソッドを削除しました

jqXHR オブジェクトは Promise ですが、.abort() などの追加のメソッドもあり、作成後にリクエストを停止できます。

ユーザーが AJAX のような非同期作業の Promise パターンをますます受け入れるようになるにつれて、jQuery.ajax によって返される Promise に特別なケースを用意するという考えは、ますます悪い考えになっています。

成功、エラー、完了、完了、失敗、常に

これは、存在し続け、廃止されていない同じ名前のコールバックにはまったく影響を与えないことに注意してください。これは Promise メソッドにのみ影響します!

これを正しく読むと、応答が返された後に JavaScript コードを実行する方法がサポートされなくなることを示しているようです。そうですか、それとも何か不足していますか?successまた、errorコールバック関数がそのようなタスクを実行するための推奨される方法であることを理解しているのは正しいですか?

ここで明確化していただければ幸いです。

4

1 に答える 1