Javascript 回调函数在完成的request.on函数之前执行
我制作了一个npm模块供我个人下载文件 使用请求并使用进度显示进度栏 但是当我测试它时,回调函数首先执行,它应该在下载完成后执行 我的测试文件Javascript 回调函数在完成的request.on函数之前执行,javascript,node.js,npm,callback,node-modules,Javascript,Node.js,Npm,Callback,Node Modules,我制作了一个npm模块供我个人下载文件 使用请求并使用进度显示进度栏 但是当我测试它时,回调函数首先执行,它应该在下载完成后执行 我的测试文件 const maxDonwload = require('maxyspark-download'); var filename = "prog.gif"; var url = "http://skillprogramming.com/images/pictuers/how_many_of_you_get_the_same_feeling.gif"; f
const maxDonwload = require('maxyspark-download');
var filename = "prog.gif";
var url = "http://skillprogramming.com/images/pictuers/how_many_of_you_get_the_same_feeling.gif";
function endFunc() {
console.log("download completed : "+filename);
}
maxDonwload.download(url,filename,endFunc());
这是输出
download completed : prog.gif
File Size : 0.50 MB
downloading [====================] 100% 0.0s
HERE HERE
我在console.logHERE-HRERE中添加了一个命令行;到中的节点模块index.js文件
req.on('end' function() {
console.log("HERE HRERE");
callback;
}
console.logHERE-HRERE;下载完成后执行,但回调不执行。您正在调用endFunc,而不是将函数本身作为参数传递 这应该可以解决这个问题:
maxDonwload.download(url,filename,endFunc);
调用函数时,应将其作为参数传递,而不使用:
maxDonwload.download(url,filename,endFunc);
如果要立即调用endfunc,请删除maxDonwload.downloadurl、filename、endfunc;不起作用。输出-文件大小:0.50 MB下载[=================================]100%0.0s此处错误可能在此处您可以检查此项吗?的确是回调;我什么都不会做。。。这是我们想要的。。。回调;哦,thanx@Keith。我现在明白了…回拨不起作用。输出-文件大小:0.50 MB下载[=================================]100%0.0s此处错误可能在此处您可以检查此项吗?不起作用。输出-文件大小:0.50 MB下载[=================================]100%0.0s此处错误可能在此处您可以检查此项吗?在我的电脑上,它正在工作,保存文件。它只记录下载所花费的时间。对我来说,这是图书馆里的错误!有两个错误,一个是您提到的,另一个是在节点模块的index.js文件中,我写了callback,它应该是callback,正如@Keith所说的