我正在尝试创建一个回调函数,或者至少这是我如何命名它。主要目的是从具有相同上下文的数组中调用函数,并能够从当前正在执行的函数中调用数组中的下一个函数。javascript调用具有相同上下文的函数数组
这是我想出了代码:
function callCallbackChain(context, callbackChain, params) {
callbackChain.push(function() {
return true;
});
for (var i = 0, len = callbackChain.length - 1; i < len; i++) {
var cb = callbackChain[i];
var next = callbackChain[i + 1];
if (typeof cb === "function") {
cb.apply(context, [next].concat(params));
}
}
}
var callbackChain = [
function (next, foo) {
console.log('1 function call', arguments);
this.innerHTML = this.innerHTML + "function called + context:" + foo + "<br>";
next()
},
function (next, foo) {
console.log('2 function call', arguments);
this.innerHTML = this.innerHTML + "function called + context:" + foo + "<br>";
next()
},
function (next, foo) {
console.log('3 function call', arguments);
this.innerHTML = this.innerHTML + "function called + context:" + foo + "<br>";
next()
}
];
var d = document.querySelector("#conent");
callCallbackChain(d, callbackChain, ["param from the main function"]);
<div id="conent">
Initial Content
</div>
我似乎无法能够正确设置next
功能。它就像一个中间件。
这一个实际上适用于我。我已经完成了我的版本,但这是完整的工作答案,所以我会接受它。 – melanholly
不错的工作...... –