阅读第78页的“Node.js设计模式”一书,我找到了以下代码:
var tasks = [...];
var concurrency = 2, running = 0, completed = 0, index = 0;
function next() {
while(running < concurrency && index < tasks.length) {
task = tasks[index++];
task(function() { // THE ISSUE IS HERE!!!
if(completed === tasks.length) {
return finish();
}
completed++, running--;
next();
}); // THE END OF MY ISSUE
running++;
}
}
next();
function finish() {
//all tasks finished
}
所以我无法理解代码段task(function(){...});
的含义。将语法划分为自身。这种风格怎么称呼?可能是一些简写,或者,例如,“将函数作为参数(或方法)传递给对象”?我在哪里可以阅读这个语法?我一无所获。
答案 0 :(得分:0)
接受另一个函数作为参数的函数称为Higher Order Function。
我不会称之为“语法”。它更像是一种创建更通用代码的技术。
在这种情况下,传递的函数可能是稍后将执行的回调。由于异步代码的使用频率,这在Javascript中非常常见(但并非特定)。