如何编写自定义的回调函数的js
问题描述:
我想获取回调后,消息设置为我的回调读取文件是这样的:如何编写自定义的回调函数的js
exp.getServerHandler=function (request,response){
if(request.url.startsWith("/static/")){
//passing my custom callback function as an input param
fileReadHandler(request,response,function callback(message){
console.log(message);
});
}
};
function fileReadHandler(request,response,callback){
fs.readFile(request.url.substr(1),
function(err,data) {
if(err){
response.end("bad request");
response.statusCode=400;
//here i want to set message as my callback param
callback("failed");
}else{
response.end(data);
//here i want to set message as my callback param
callback("successful");
}
}
);
}
但控制台没有登录我的回调的消息!哪里有问题?这是做这件事的正确方法吗?
编辑:
这个代码工作正常,并正确
答
尝试将其传递时fileReadHandler
这样除去callback
函数名称:
exp.getServerHandler=function (request,response){
if(request.url.startsWith("/static/")){
//passing my custom callback function as an input param
fileReadHandler(request,response,function(message){
console.log(message);
});
}
};
function fileReadHandler(request,response,callback){
fs.readFile(request.url.substr(1),
function(err,data) {
if(err){
response.end("bad request");
response.statusCode=400;
//here i want to set message as my callback param
callback("failed");
}else{
response.end(data);
//here i want to set message as my callback param
callback("successful");
}
}
);
}
答
使用此代码:
exp.getServerHandler=function (request,response){
if(request.url.startsWith("/static/")){
//passing my custom callback function as an input param
fileReadHandler(request,response,function callback(message){
if (window.console && window.console.log)
window.console.log(message);
});
}
};
- 检查控制台对象,因为eq。只有在控制台窗口打开的情况下才提供IE控制台对象
- 使用完整路径
window.console
。
+0
它没有帮助 –
+0
该帖子标有Node.js标签。节点没有'window'对象。 – Pointy
你能告诉我你怎么称呼你的功能吗? –
@AlexanderNovikov哪个功能? getServerHandler或..? –
exp.getServerHandler,你确定你传递了所有必要的参数吗?因为它可能在第一次评估为false如果声明/ –