2011-10-28 7 views
0

私が機能を持っている:私も

$.when(function() {someFunction(params) } 
).then(doNextThing); 

doNextThingを試してみました

function someFunction(params) { 
//Creates an object 
//$.each(collection, funct() { /*do work on collection, essentially pushes items into an array */}); 

//JSON.stringify(results) 

//$.ajax POST...this is what I want $.when to wait for 

} 

Iセットアップ

$.when(someFunction(params) 
).then(doNextThing); 

は、コールバックの前に呼び出されます。 $.eachまたはstringify$.whenに失敗する可能性がありますか?

+1

は何かを返すsomeFunctionのですか?それは返されるはずです$ .ajax –

+0

'return'ステートメントはありません。あなたは私がちょうど$ .ajaxの前にリターンをつけていることを意味しますか?例えば。 'return $ .ajax {...'? –

+0

'return $ .ajax'を修正しました。私は2時間ほどこれに苦しんできました。あなたが回答を投稿した場合、私は間違いなくあなたに回答クレジットを与えます。 –

答えて

1

someFunctionは、$.whenのオブジェクトを返す必要があります。それ以外の場合はsomeFunction(params);$.when(undefined).then(doNextThing)と等価です。この設定では、doNextThingは決して呼び出されません。

あなたはAJAX呼び出しを待機しているので、それは次のようになります。

function someFunction(params) { 
    ... 
    return $.ajax(...); 
} 

$.when(someFunction(params)).then(doNextThing); 
関連する問題