検討:
function ajaxCall(url, callback) {
$.ajax({
type: "GET",
url: url,
success: function (data) { // <-- fail point: where does the returned data go, now?
// do stuff with data
if ( callback ) {
var ret = callback();
if ( ret !== undefined ) {
return ret;
}
}
}
});
}
function fooBar() {
return ajaxCall('some/url', function () {
// do stuff
return some_value;
}
}
そうですね、基本的には、ブラウザがハングしないようにリクエストの非同期性を維持したいのですが、最終的に値を返します...これは単純化された例ですが、おそらくさらに単純化できます。
$.ajax
実際、私が目にする唯一の障害は、とそのsuccess:
無名関数の間の移行です。
うーん。