Ich habe 2 Funktionen, die ich in einem lodash Fluss hinzufügen wird:lodash Fluss und mehrere Argumente
function normalizedFormFields(fields) { // needs only 1 argument
return _.mapValues(fields, function(value) {
return { 'content': value };
});
}
function mergedModelAndFormFieldss(model, normalizedFormFields) {
return _.merge({}, model, normalizedFormFields)
}
const execution = _.flow(normalizedFormFields, mergedModelAndFormFieldss)
const errorMessageBag = function(fields, model) {
return execution(fields, model) // initiate flow with 2 arguments
}
Wie Sie die erste Funktion normalizedFormFields ein Argument sehen kann. Die zweite benötigt 2: den von der vorherigen Funktion zurückgegebenen Wert (was das normale Verhalten des Flusses ist) und einen anderen: Modell.
Aber im Aufruf errorMessageBag starte ich den Ablaufprozess mit 2 Argumenten. Wie kann das zweite Argument neben dem zurückgegebenen Produkt der ersten Funktion der zweiten Funktion zur Verfügung stehen? Wie Sie sehen, das Problem besteht darin, dass die erste Funktion im Ablauf braucht und nur ein Argument benötigt. Ist das eine Art von Situation, in der "Curry" ins Spiel kommen sollte? Bitte illustrieren.
Warum nicht verwenden, um eine Funktion wie '(Felder, Modell) => mergedModelAndFormFieldss (Modell, normalizedFormFields (Felder))' statt '_.flow()'? –
@Gothdo gibt es mehr Funktionen Schritte im Fluss –
Haben Sie Zugriff auf 'Modell' beim Aufruf von' _.flow? 'Wenn ja, können Sie' const ausführen = _.flow (normalizedFormFields, _.partial (mergedModelAndFormFields, Modell)) ' – asenovm