Ich oft ein Rohr von kleinen Funktionen erstellen. An einem Punkt in der Pipe, sagen wir auf der dritten Ebene, muss möglicherweise an eine Funktion ein Argument übergeben werden, das die vorherigen Funktionen nicht benötigten.mit Bind dies zu übergeben Argument nach unten die Leitung
Ich könnte eine multi Rückkehr von der ersten Funktion in der Leitung mit dem Zurückgeben eines Gegenstandes mit dem noch nicht benötigten Argument simulieren, aber ich bin nicht sicher, dass es eine gute Praxis ist. So verwende ich binden und diese das Argument speziell zu passieren, wo ich es brauche:
function errorMessageBag(fields, model) {
const execution = R.pipe(normalizedFormFields,
mergedModelAndFormFields.bind(this, model), // Here I pass an argument only needed by this function
fieldsWithValidation,
requiredFields,
stringLengthValidation,
emailValidation,
urlValidation)
return execution(fields) // Parameter respects signature of first function in the flow.
}
Sie sehen in diesem Beispiel ich mergedModelAndFormFields geben ein Argument, Modell. Funktioniert gut, aber ist das eine gängige Praxis oder schlechte Praxis? Wenn schlecht, was ist der richtige Weg, damit umzugehen?
Ihr Ansatz scheint mir vernünftig. – davidchambers
Wenn Sie während des Anrufs keinen Zugriff auf "this" benötigen, ist die Aktualisierung der Funktion möglicherweise eine sauberere Alternative. Aber wenn Sie das tun, scheint das in Ordnung zu sein. –
Danke Jungs, kopieren Sie diese als Antwort und ich werde es wählen. –