我有一个gulpfile.js,它有很多任务。
我注意到我的任务正在运行,但是在完成任务之后,它们不会退出/终止。我必须使用control + c退出。我读了一篇关于类似问题的文章,但是它使用的是“吞咽式摩卡”,而且插件中也有一个问题。
在我的例子中,我也知道是什么导致了这个问题。我需要一个js(edgecaset.js)文件,这个文件已经写入我的gulp文件中(其中一个任务在该文件中使用了一个函数)。它是一个简单的文件,只有一个函数可以与rest交互。如果我不需要那个文件,一切都很好。
我只是从edgecast.js文件导出一个函数,以便在gulp文件中使用。它调用了setTimeOut函数(这会是问题吗?)
有人能帮我找出问题吗?
var main = function () {
console.log(config.edgecast.username);
ftp.put(config.ftp.local_path, config.ftp.remote_path, function(hadError) {
if (!hadError) {
console.log('File transferred successfully');
rest.put(config.edgecast.purge_url, purgeOptions).on('complete', function(data, response) {
if (response.statusCode != 200)
console.log('Purge failed');
else {
console.log('Purge request Issued');
purgeID = data.Id;
setTimeout(function() {
rest.get(config.edgecast.get_purge_url + purgeID, purgeOptions).on('complete', function(data) {
if (data.CompleteDate) {
console.log('Purge completed on ' + data.CompleteDate);
rest.put(config.edgecast.load_url, loadOptions).on('complete', function(data, response) {
if (response.statusCode == 200)
console.log('Asset Loaded');
else {
console.log('Load Failed');
console.log(response.statusCode);
}
});
}
});
}, 180000);
}
});
} else console.log('File Transfer Failed. ' + hadError);
ftp.raw.quit(function(err) {
if (err) return console.error(err);
});
});
};上面是我从edgecast.js文件导出的函数。这是文件中唯一的函数。剩下的只是变量。然后在gulpfile.js中
var edgecast =需要量(‘./edgecast.js’);
这一要求声明导致了所有的问题。
edgecast.js文件导入了以下库。
var rest = require('restler'),
config = require('./config'),
JSFtp = require('jsftp'); 发布于 2017-01-06 15:12:07
发现问题了。结果显示,gulp任务不退出,因为FTP连接一直处于打开状态,等待关闭
https://stackoverflow.com/questions/31298754
复制相似问题