Ich habe die letzten paar Stunden völlig festgefahren.Argumente an eine Generatorfunktion übergeben
Wie Parameter an eine Generatorfunktion übergeben werden?
function* getFoo(foo) {
return yield Promise.resolve(foo + 10);
}
exports.testRoute = Promise.coroutine(function* (req, res) {
let bar = yield Promise.coroutine(getFoo); // <--- how to pass argument??
res.send(bar.toString());
});
aktuellen Code wirft Fehler (und ich weiß, er zeigt mir here aber es sagt nichts über Argument passing):
Unhandled rejection TypeError: A value [object Promise] was yielded that could not be treated as a promise
See http:// goo.gl/4Y4pDk
From coroutine:
at Function.module.exports.Promise.coroutine (d:\Workspace\Github\API-NodeJS\app\node_modules\bluebird\js\main\generators.js:111:17)
Wenn ich dies tun:
let bar = yield Promise.coroutine(getFoo(5));
Ich bekomme folgenden Fehler (wieder selbsterklärend Fehler, aber this link erklärt nicht Argument übergeben entweder):
Unhandled rejection TypeError: generatorFunction must be a function
See http:// goo.gl/6Vqhm0
at Function.module.exports.Promise.coroutine (d:\Workspace\Github\API-NodeJS\app\node_modules\bluebird\js\main\generators.js:107:15)
Ich mag den Kontext missverstehen, aber kannst du nicht einfach 'promise.coroutine (getFoo.bind (null, 5))' 'ausgeben? – LINKIWI
@LINKIWI Nein, ich bekomme den ersten Fehler ** Ein Wert [Objekt Versprechen] wurde erbracht ... ** – Shaharyar