随着我对NodeJS和callbackHell有了更多的了解,我试图在我的项目中包含越来越多的高阶函数。我的一个想法是创建一个函数,以适合回调的方式创建其他函数。
我的方法是这样的:
function putFunctionInFunction(func, funcTwo) {
const tempFunc = function (callback) {
func(() => {
funcTwo(callback);
});
};
return tempFunc;
}在此之后,我的计划是使用这个函数从一个函数数组中生成一个大回调函数。
该函数如下所示:
function callbackFunctionArray(arr) {
let tempFunc = function (callback) {
callback();
};
for (const func of arr) {
tempFunc = putFunctionInFunction(tempFunc, func);
}
return tempFunc;}
遗憾的是,我的第一个功能不起作用,我也无法理清原因。它只产生“未定义”-结果。到目前为止,我猜测的是,我想要保存在tempFunc中的函数会立即得到评估,并产生“未定义的”错误。
我的问题是:
谢谢你的帮助。
更新-问题已结束:看到我的答案。
发布于 2017-05-15 12:09:01
我所有的功能都起作用了。我只是花了很多小时测试错误的输入。有效的输入如下:
const inputFunc1 = function (func2) {func2()};
const inputFunc2 = function (callback) { callback()};
putFunctionInFunction(inputFunc1,inputFunc2)(() => {console.log("hello")});为了避免这些问题,使用异步/等待并保证将来代码更清晰,这可能是一个很好的选择,正如注释中所建议的那样。
无论如何,我会把这个留在这里,因为我认为它对其他人来说是有价值的,因为它可以用这个精确的主题来搜索高阶函数。我找不到关于编写这样一个函数的任何其他资源。
https://stackoverflow.com/questions/43968777
复制相似问题