最近、jQueryで$ .Deferred()を使用して少しテストしていて、質問があります。deferedとpromiseは、1回だけ実行することを目的としたajaxcallに最適ですが、ajaxを使用した投稿を複数回実行可能にする必要がある新しいユーザーを追加するためのフォームも取得しました。これで、deferred / promiseのbinary(ish)状態でクラッシュします。解決または拒否されると、その状態が維持されるためです。だから私の質問は:
-複数回呼び出されるタスクに遅延を使用できますか?-可能であれば、これには据え置きを使用することをお勧めしますか、それとも$ .ajaxの成功/エラーコールバックを使用するだけで古いメソッドに固執する必要がありますか?
ここに、フォームを投稿するために集めたコードがあります。これは1回はうまく機能しますが、複数回は機能しません。
var submittingUser = new $.Deferred();
var savingUser = submittingUser.pipe(function(data) {
return $.post('ajax.php', data);
});
$("#add_new_user").click(function() {
var data = $("#add_user_form").serialize();
submittingUser.resolve(data);
return false;
});
savingUser.then(function() {
//Success
}, function() {
//Failed
});