Ein einfaches Beispiel: Ich habe 2 Schluck Aufgabe (zweite benötigt von der ersten bewertet), kann aber nicht in zweiter Sekunde richtig (während der ersten Ausführung der Aufgabe mit setTimeout):So verwenden Sie den zurückgegebenen Wert aus der verzögerten Schluckaufgabe in einem anderen
var gulp = require("gulp");
var values = undefined;
gulp.task("one", function(cb) {
console.log(values);
setTimeout(function() {
console.log('First finnished!!!');
values = "Vovan and Alex";
}, 1000);
cb(values);
})
gulp.task("two", ["one"], function() {
console.log(values);
console.log("Second's done!")
})
gulp.task("default", ["one", "two"]);
Resultierende in folgenden:
[18:24:26] Using gulpfile ~/workspace/gulpfile.js [18:24:26] Starting 'one'... undefined [18:24:26] Finished 'one' after 1.58 ms [18:24:26] Starting 'two'... undefined Second's done! [18:24:26] Finished 'two' after 302 μs [18:24:26] Starting 'default'... [18:24:26] Finished 'default' after 17 μs First finnished!!!
gut .. es bricht mit Fehler '[18:43:58] 'ein' Fehler nach 1 s [18:43:58] Fehler: Vovan und Alex' –
Das ist, weil Schluck erwartet einen Stream und du bist ein Array von Strings übergeben. Ich habe das am Ende der Antwort erwähnt. – ssube
.. so, wie Code könnte dann aussehen? .. –