//カリー化関数
function curry( orig_func ) {
var ap = Array.prototype,
args = arguments;
function fn() {
ap.push.apply( fn.args, arguments );
return fn.args.length < orig_func.length
? fn
: orig_func.apply( this, fn.args );
};
return function() {
fn.args = ap.slice.call( args, 1 );
return fn.apply( this, arguments );
};
};
//出力
function log(d){
console.log(d);
}
//非同期処理
var Async1 = function(fn, nextFn) {
$.ajax({
url:'hoge1.html',
dataType:'html',
success:function(data){
fn('async1'); //fn(data);
nextFn();
}
});
}
var Async2 = function(fn, nextFn) {
$.ajax({
url:'hoge2.html',
dataType:'html',
success:function(data){
fn('async2'); //fn(data);
nextFn();
}
});
}
var Async3 = function(fn, nextFn) {
$.ajax({
url:'hoge3.html',
dataType:'html',
success:function(data){
fn('async3'); //fn(data);
nextFn();
}
});
}
//end
var EndFn = function(){
log('End');
}
//引数束縛
var async1= curry(Async1 , log);
var async2= curry(Async2 , log );
var async3= curry(Async3 , log , EndFn);
//非同期処理を一つにまとめる
var root = curry(async1 , curry(async2, async3));
//実行
run()
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
List of users who liked
33