Ein Trampolin ist eine Kontrollstruktur, die es ermöglicht, rekursive Logik zu implementieren und gleichzeitig die Beschränkungen von Stack-basierten Sprachen ohne Tail-Call-Optimierung zu umgehen.
Die rekursive Natur der geschachtelten Versprechen Ketten eignet sich für eine rekursive Lösung für eine Versprechen Implementierung.
Vermutlich wird das Trampolin daher in der Spezifikation Promise/A + als eine häufig verwendete Implementierungsmethode identifiziert, obwohl es in einigen Sprachen nicht unbedingt notwendig oder tatsächlich nicht optimal ist.
Zum Beispiel führte ES2015 die Tail-Call-Optimierung in JavaScript ein, wodurch ein (mindestens User-Landeplatz) Trampolin, vermutlich nicht mehr, notwendig wurde. Die Promises/A + Spezifikation wurde jedoch Jahre vor ES2015 geschrieben.
[Wikipedia erklärt] (https://www.wikiwand.com/de/Trampoline_ (Computing) #/High-level_programming) dass * ein Trampolin ist eine Schleife, die iterativ [thunk] (https: // www. wikiwand.com/de/Thunk_(functional_programming))-returning-Funktionen ([continuation-passing style) (https://www.wikiwand.com/de/Continuation-passing_style)) *. – sp00m
Ist die JavaScript-Ereignisschleife ein Trampolin? Ich nehme an, meine Frage ist: Warum Erwähnung in der Promise/A + -Spezifikation, was ein Implementierungsdetail zu sein scheint? Gibt es in diesem Fall eine besondere Bedeutung eines Trampolins? – Ben
[Dies ist ein Beispiel für ein Trampolin] (https://github.com/bergus/F-Promise/blob/master/src/continuations.js#L23-L27) in einer sehr komplizierten (und daher aufgegeben) Versprechen Umsetzung . – Bergi