【发布时间】:2023-03-21 00:20:02
【问题描述】:
我有一个 node.js 服务器,它会根据请求向客户端发送一个 svg(构建需要相当长的时间),并阻止它向客户端发送一个不完整的 svg,我使用了异步.each() 用于构建 svg 的循环。
为了调用 write 函数等。我使用了一个回调函数,我将它传递给构建 svg 的函数,以便在 async.each() 完成后立即调用。
但是,当调用 async.each 时,它说我给 svg 构建函数的回调函数不存在。为什么会这样,我怎么称呼它?
function sendSVG(res){
var str = "somePredefinedStuff";
buildSVG(str,function(){
str += "someEndStuff";
res.write(str);
res.end();
});
}
function buildSVG(str,callback){
var array = [1,2,3];
async.each(array, function(a){
str += "moreStuff";
buildSVG(str);
str += "moreEndStuff";
},function(err){
console.log(typeof callback); //always returns undefined. Should actually return function once?
if(callback)
callback();
});
}
编辑:问题出在代码的另一部分(从未调用回调的情况)。该字符串仍然仅以其原始形式发送,但应该有解决方法。
【问题讨论】:
-
我不明白你的代码。为什么
buildSvg会递归调用自己?
标签: javascript node.js callback async.js