Die schluck Dokumentation gibt etwas Ähnliches wie die folgenden:
var gulp = require('gulp');
// Takes in a callback so the engine knows when it'll be done
// This callback is passed in by Gulp - they are not arguments/parameters
// for your task.
gulp.task('one', function(cb) {
// Do stuff -- async or otherwise
// If err is not null and not undefined, then this task will stop,
// and note that it failed
cb(err);
});
// Identifies a dependent task must be complete before this one begins
gulp.task('two', ['one'], function() {
// Task 'one' is done now, this will now run...
});
gulp.task('default', ['one', 'two']);
Das Fertig-Argument wird in der Callback-Funktion, die Sie Ihre Aufgaben definieren Verwendung übergeben.
Ihre Task-Funktion kann einen Funktionsparameter "Callback akzeptieren" (oft hat dieser Funktionsparameter den Namen done
). Das Ausführen der done
Funktion sagt Gulp "einen Hinweis, um es zu sagen, wenn die Aufgabe erledigt ist".
Gulp muss diesen Hinweis, wenn Sie einen Serie von Aufgaben bestellen möchten, die aufeinander abhängen, wie im obigen Beispiel gezeigt. (d. h. Task two
wird nicht gestartet, bis Task one
Aufrufe cb()
) Im Wesentlichen stoppt es Aufgaben gleichzeitig ausführen, wenn Sie nicht möchten.
Sie können mehr darüber hier lesen: https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support
Schön erklärt. Danke @Seer – Nexus23
Nur neugierig, wie Schluck prüft und weiß, ob die Funktion, die ich ihm gebe, einen Parameter hat oder nicht? Wie ist das in Javascript möglich? Das klingt nach Reflektion. –
Der Rückruf ist besonders nützlich, wenn Sie innerhalb der Aufgabe einen asynchronen Prozess ausführen müssen, während die Aufgabe darauf warten soll, dass der Vorgang abgeschlossen wird, bevor Sie zurückkehren.Andernfalls könnte es ausreichen, nur den Stream zurückzugeben. Siehe auch https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support – grtjn