繁体   English   中英

回调函数在完成请求之前执行

[英]callback function executes before the finished request.on function

我制作了一个npm module供个人使用,以使用request下载文件并使用progress显示进度栏

https://github.com/MaxySpark/maxyspark-download

但是当我第一次测试它的回调函数执行时,它在完成下载后应该执行。

我的测试文件

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.log("HERE HRERE"); 到节点模块index.js文件

req.on('end' function() {
    console.log("HERE HRERE");
    callback;
}

在此处输入图片说明

console.log(“ HERE HRERE”); 下载完成后执行,但回调不执行

您正在调用该函数,而应将其作为不带()的参数传递:

maxDonwload.download(url,filename,endFunc);

您正在调用endFunc()而不是将函数本身作为参数传递。

这应该解决它:

maxDonwload.download(url,filename,endFunc);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM