Ich versuche, mich um Generatoren und Ertrag in JavaScript und Node.js, aber mit einem Problem.Wrapping fs.readFile in einem Generator/Ausbeute
Idealerweise möchte ich fs.readFile mit generators/yield umschließen, damit ich es synchron verwenden kann, ohne etwas zu blockieren.
Ich habe mit dem folgenden Code kommen:
function readFileSync (path) {
return (function *(){
return yield require('fs').readFile(path, function *(err, data){
yield data;
});
})();
}
console.log(readFileSync('test-file.txt'));
Aber leider readFileSync
nur gibt immer {}
anstelle des Dateiinhalts.
Hoffentlich ist das, was ich erreichen möchte, noch möglich, oder ich habe den Punkt der Generatoren/Ausbeute völlig verpasst und ich benutze es völlig falsch, in welchem Fall ich darauf hinwies, wo ich falsch gelaufen bin und irgendwelche Ressourcen wäre großartig.
In allen Generator-Beispielen habe ich gesehen, waren Versprechungen beteiligt. Auf welchen Docs/Posts/Howtos basiert dein Skript? – Bergi
Warum nicht einfach 'fs.readFileSync' verwenden? – Bergi
'Warum nicht einfach fs.readFileSync verwenden?' Es blockiert. Der Anwendungsfall hier ist, diese Zeile nicht blockierend zu machen: https://github.com/bevry/ssg-experiments/blob/aba629383d0945fffc843e2d43c4b180ca0083bd/index.js#L24 – balupton