私のコードには、関数呼び出しの配列があります。これらの呼び出しをループし、.apply() を使用して呼び出します。問題は、新しい関数の呼び出しに時間がかかる場合、ループが .apply() を実行し、前の関数が終了する前に次の関数を呼び出すことです。>.< 次に例を示します。
function someFunc(element, calls){
if(calls.length){
fn = calls[0];
calls.shift();
fn.apply(element, args);
someFunc(element, calls);
}
}
したがって、適用関数にコールバックがあった場合、これは私が望むように機能する可能性があります。すなわち
function someFunc(element, calls){
if(calls.length){
fn = calls[0];
calls.shift();
fn.apply(element, args, function(){
someFunc(element, calls);
});
}
}
コールバック関数内で someFunc を呼び出すことについても質問があります。calls
配列内の関数はelement
変数に影響します。したがって、変更された後、コールバックで someFunc に渡されることを確認して、次の関数もそれを操作できるようにしたいと考えています。this
文脈に惑わされてしまうこともあります。:)
それが役立つ場合、私はjQueryを使用しています。jQuery メソッドにコールバックを追加する方法は知っていますが、ネイティブの JavaScript コードを扱っているときにその方法を知りません。.apply() メソッドにコールバックを追加するにはどうすればよいですか?