これについて多くの質問を見てきましたが、私の場合は正しい答えが得られないようです。を使用する回答も.pipe
見ましたが、を使用する回答を探しています.then
。
わかった。3 つの ajax 呼び出しを行う必要があります。たとえば、複数のアカウントを許可するポーリング アプリケーションを考えてみましょう。アカウントが投票できるようにするために必要なプロセスは次のとおりです。
- ログインする
- オプションを選択
- 参加する
- ログアウト (Cookie をクリアするだけで、投稿する必要はありません)。
私は2つのアカウントを持っているとしましょう:
var accts = [{user: "acct1", pswd: "1234"},{user: "acct2", pswd: "4321"}];
ここで、jquery を使用してこれらのアカウントをループする必要があります$.each
$.each(accts, function(key,value){
});
using を使用するとこれを完全に実行できることを学びました$.Deferred
が、正しい実装が必要です。
私が欲しいのは
--------loop1--------
login
select
vote
--------loop2--------
login
select
vote
All Done!.
しかし、何が起こるかは(何が起こっているのかを調べようとするとconsole.log
)すべて完了です!login(2) select(2) 投票(2)
だからここに私のコードがあります:
$.each(data, function(k, v) {
promise.then(function() {
return $.post(loginURL, {user: v.username, passwrd: v.password});
}).then(function(html) {
if (data > 0) {
console.log('Logged In!');
return $.post(pollURL + 'select.php', {id: 143});
} else {
console.log('Login Failed.');
return false;
}
}).then(function(data) {
if (data === 'selected') {
console.log('Already have a selection.');
return false;
} else {
return $.post(pollURL + 'submit.php');
}
}).then(function(data){
if(data > 1) {
Console.log('Successfully Voted.');
} else {
// if possible return to the login?
}
});
});
promise.done(function() {
console.log('All Done. Logged out.');
});
私は何を間違っていますか?.