Node.js Nodejs回调:如何定义回调?
我正在查看一个示例nodejs服务器代码,该代码运行良好。但无法理解以下代码:Node.js Nodejs回调:如何定义回调?,node.js,callback,Node.js,Callback,我正在查看一个示例nodejs服务器代码,该代码运行良好。但无法理解以下代码: var handlers = {}; // Creating a sample handler handlers.sample = function(data,callback){ callback(406,{'name':'sample handler'}); // How is this line of code working?? }; // Creating
var handlers = {};
// Creating a sample handler
handlers.sample = function(data,callback){
callback(406,{'name':'sample handler'}); // How is this line of code working??
};
// Creating a not found handler
handlers.notFound = function(data,callback){
callback(404); // How is this line of code working??
};
在整个代码中没有实现“回调”函数,那么如何实现呢
callback(406,{'name':'sample handler'});
及
你在工作吗
请建议。谢谢。
回调
未在您发布的代码中实现;这是一个命名参数
要调用需要回调的函数之一,需要将其作为参数传入,如:
handlers.sample("some data", () => console.log("I'm in a callback!));
第一个参数(“某些数据”
)位于数据
参数中,第二个参数(()=>console.log(“我在回调中!)
)位于回调
参数中。当运行回调(404)
时,它执行回调
函数(在上面的示例中,它将执行console.log(“我在回调中!)
)
handlers.sample(dataObject, (number, object) => {
console.log(number)
console.log(object.name)
})
将在控制台中产生此结果:
406
sample handler
我很好奇这是不是一个公共图书馆,你在里面看到了这段代码,我们可以仔细看看吗?我对这段代码做了进一步的挖掘,发现了它
selectedHandler
在下面的代码中(问题中未提及),基于某些逻辑(此处未提及)将解析为处理程序.sample
或处理程序.notFound
变量名
这个函数的第二个参数,它本身就是一个完整的函数
function(status,payloadData){
// somelogic with the status and payloadData
}
作为handlers.sample
或handlers.notFound
中的第二个参数,这是一个回调。因此,在当前上下文中执行回调就是执行此函数(此函数是匿名的,因为它没有名称,并且作为回调执行)您可能会发现回调中存储的函数在同一个位置处理程序中。示例
在代码中的其他位置被调用。感谢Ollin,这正是我要查找的。
selectedHandler(data,function(status,payloadData){
// somelogic with the status and payloadData
});
function(status,payloadData){
// somelogic with the status and payloadData
}