Das Versprechen ist das andere Ende des Drahtes.
Stellen Sie sich vor, Sie müssen den Wert einer future
die von einem async
. Sie möchten jedoch nicht, dass die Berechnung im selben Thread erfolgt, und Sie erzeugen nicht einmal einen Thread "jetzt" - vielleicht wurde Ihre Software so konzipiert, dass sie einen Thread aus einem Pool auswählt, so dass Sie nicht wissen, ob Sie einen Thread erstellen können. die wird am Ende eine Berechnung durchführen.
Was geben Sie nun an diesen (noch unbekannten) Faden/diese Klasse/diese Entität weiter? Man übergibt nicht die future
da es sich um die Ergebnis . Sie wollen etwas verabschieden, das verbunden zum future
und das steht für das andere Ende des Kabels so werden Sie einfach die future
ohne zu wissen, wer tatsächlich etwas berechnen/schreiben wird.
Dies ist die promise
. Es ist eine Griff verbunden mit Ihrem future
. Wenn die future
ist eine Sprecher und mit get()
Sie beginnen zu lauschen, bis ein Ton herauskommt, der promise
ist eine Mikrofon aber nicht irgendein Mikrofon, es ist die Mikrofon, das über ein einziges Kabel mit dem Lautsprecher verbunden ist, den Sie in der Hand halten. Sie wissen vielleicht, wer am anderen Ende sitzt, aber Sie müssen es nicht wissen - Sie sagen es einfach und warten, bis die andere Partei etwas sagt.