[英]chaining functions with a function argument
我想做的是將一個函數數組與一個函數“連接”在一起。 因此,在一系列函數中:
var functionArray = [functionA, functionB, functionC];
functionA(next)
應該能夠調用它的函數參數調用next
調用functionB
。
問題是我不能使用諾言(這會使它變得容易得多,不幸的是),所以我設計了這樣一種方法:
var functionArray = [functionA, functionB];
functionArray.push(functionC.bind(undefined, args));
for (var i = functionArray.length - 1; i-- > 0; ) {
functionArray[i] = functionArray[i].bind(undefined, args, functionArray[i + 1]);
}
functionArray[0]();
我的問題是,是否有更好的方法來完成此任務,因為上述功能看起來非常駭人。 也許與Array.prototype.reduce有關系 ?
為什么不使用多維數組存儲函數及其參數。 可以清除一些內容,但基本思路是:
var functionArray = [
{ func: yourFunction, args: [1, 2] }
];
for (var i = 0 i < functionArray.length; i++) {
var func = functionArray[i].func;
var args = functionArray[i].args;
func.apply(this, args);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.