2016-03-23 6 views
1

ループが終了する前に関数が呼び出され続けるという問題があります。ループが終了するまで関数が呼び出されないようにするにはどうすればよいですか?私のループはHTMLテーブルをページに出力していますが、そのページは私のsortResultsByDateによって処理されていますが、HTMLがレンダリングされるまでは発生しません。現在、私の2番目の機能は、最初の機能が完了する前に起動しています。jQueryで他のコードを実行する前にループが完全に実行されていることを確認してください

ns.executeUserSearch = function() { 
    jQuery.each(searchInputArray, function(index, value) { 
     ns.getUserSearchResults(searchInputArray, index); 
    }); 

    ns.sortResultsByDate(); 
}; 
+2

再帰性を達成しようとしていますか? – Technoh

+1

これは正常に動作するはずです。しかし、あなたの 'getUserSearchResults'は結果を得るためにajax呼び出しをしていますか?この場合、動作しません。 Technohが言うように、あなた自身から 'getUserSearchResults'を呼び出すことを意味していますか? – Rhumborl

+0

jQueryを延期しよう:https://api.jquery.com/jquery.deferred/ – swatkins

答えて

0

あなたがjQuery.eachループ内で再帰的にns.getUserSearchResultsを呼んでいるようです。 ns.sortResultsByDate()がこのような呼び出しごとに1回実行されているので、すべての再帰呼び出しを完了する前に複数回実行することになります。

関連する問題