Ihre unless()
Funktion gibt nichts zurück. So
var nn = unless(...);
bedeutet, dass nn
nur undefined
sein wird. Um nn
einen Wert zu haben, muss Ihre unless()
Funktion einen Wert zurückgeben.
In hier:
function unless(test, then) {
if (!test) then();
}
Es gibt keine return
Aussage. Der Callback then()
gibt möglicherweise einen Wert zurück, aber dieser Wert wird nur innerhalb von unless()
verfügbar gemacht, wenn Sie ihm einen Wert zugewiesen haben. Wenn Sie möchten, dass unless()
selbst einen Wert zurückgibt, müssen Sie eine oder mehrere geeignete return
-Anweisungen hinzufügen.
Zum Beispiel könnten Sie einen Teil des Problems beheben, indem Sie einfach den then()
Wert zurück wie:
function unless(test, then) {
if (!test) return then();
}
Aber Sie müssen noch einen Rückgabewert für den Fall, dass test
truthy ist. Ich bin mir nicht sicher, was Sie, dass Rückgabewert in diesem Fall sein wollen, damit ich weiß nicht, was zu empfehlen, aber die allgemeine Form dies sein könnte:
function unless(test, then) {
if (!test) {
return then();
} else {
return somethingelse; // assign some return value when `test` is truthy
}
}
'es sei denn,()' nichts zurückgibt . – JJJ
@Juhana Dieser Kommentar sollte eine Antwort sein. – Siguza
Diese Frage sollte geschlossen und nicht beantwortet werden. – JJJ