ここにコードを入力してください私は次のコードを持っています
function a(){alert("a");}
関数bを次のように作成したい
function b(){alert("a"); alert("b");}
私のアプローチは次のようなものです
var b = a + alert("b");
これはもちろん機能していません。しかし、これをサポートする何らかのライブラリがあるかどうか疑問に思っています。
編集:達成したいことをより明確にするために、シナリオを説明する必要があるかもしれません。
複数の非同期呼び出しを処理するために async.js ライブラリを使用しています。私のコードは次のようになります
var values = {};
...
function all() {
var allDfd = $.Deferred();
async.parallel(
[function (callback) {
remoteCall(function (result) {
values.v1 = result;
callback(null, 'one');
});
},
function (callback) {
remoteCall(function (result) {
values.v2 = result;
callback(null, "two");
});
},
function (callback) {
remoteCall(function (result) {
values.v3 = result;
callback(null, "three");
});
}], function (err, results) {
allDfd.resolve();
});
return allDfd.promise();
}
明らかに、私を悩ませている反復コードがたくさんあります。したがって、私の考えは、定型的なタスクを実行する関数 asyncCall を作成することです。アイデアは
var values = {};
...
function all() {
var allDfd = $.Deferred();
function getAsyncCall (func, innerCallback, callback) {
return function asyncCall(func, innnerCallback, callback){
func(innerCallback + callback(null)); // combine innerCallBack and callback code
}
}
async.parallel(
[getAsyncCall(remoteCall, function(result){values.v1=result;},callback),
getAsyncCall(remoteCall, function(result){values.v2=result;},callback),
getAsyncCall(remoteCall, function(result){values.v3=result;},callback),
], function (err, results) {
allDfd.resolve();
});
return allDfd.promise();
}
コメントのある行は、私が熟考しているものです。内部コールバックと外部コールバックを組み合わせた新しい関数を作成しようとしています。