我正在使用gulp run-sequence
,其中一项任务包括对网络服务的自定义远程调用,我不想让gulp继续前进,直到它完成,但它会立即继续因为我没有得到适当的回报。
gulp.task('upload', function() {
fs.readFile('./dist.zip', { encoding: 'base64' }, function(err, data) {
params['ZipFile'] = data;
lambda.updateFunctionCode(params, function(err, data) {
return true;
});
});
});
// Our default task will build a production copy, then upload to Lambda
gulp.task('default', function(callback) {
return runSequence(
['clean'], ['js', 'npm', 'env'], ['zip'], ['upload'],
callback
);
});
答案 0 :(得分:2)
您需要在“上传”任务中使用回调,以便在完成任务时发出信号。像这样:
gulp.task('upload', function(callback) {
fs.readFile('./dist.zip', { encoding: 'base64' }, function(err, data) {
params['ZipFile'] = data;
lambda.updateFunctionCode(params, function(err, data) {
callback();
});
});
});
另外不要忘记检查上面fs.readFile和lambda.updateFunctionCode的错误:if(err)...