Gibt es ein F #, das Scalas Versprechen entspricht?

8

Gibt es sowas wie Scalas Versprechen in F #?

?
  

Während Futures als eine Art schreibgeschütztes Platzhalterobjekt definiert sind   geschaffen für ein Ergebnis, das noch nicht existiert, kann ein Versprechen gedacht werden   als schreibbarer Container mit einer einzigen Zuweisung, der a   Zukunft. Das heißt, ein Versprechen kann verwendet werden, um erfolgreich ein   Zukunft mit einem Wert (durch "Vervollständigen" des Versprechens) mit dem Erfolg   Methode. Umgekehrt kann ein Versprechen auch dazu genutzt werden, eine Zukunft abzuschließen   mit einer Ausnahme, indem Sie das Versprechen nicht erfüllen, indem Sie die Fehlermethode verwenden.

Das Async-Programm deckt einen Teil davon ab, aber wenn Sie Code haben, der außerhalb der Async-Umgebung funktioniert, sind Promises ein praktisches Tool. (Sie können beispielsweise ein Promise in einem UInthread abschließen, selbst wenn die UI-Umgebung überhaupt nichts über Async weiß.)

    
James Moore 22.07.2013, 17:10
quelle

1 Antwort

12

Das .Net-Äquivalent eines Versprechens ist eine TaskCompletionSource , von der Sie sie verwenden können F #. Sie können ein Async<T> aus einem Task<T> mit Async.AwaitTask erstellen, zB

%Vor%     
Lee 22.07.2013, 17:52
quelle

Tags und Links