Sorry, es ist einfach nicht möglich.
Es gibt einige Fälle, in denen eine Funktion new Future.immediate(value)
zurückgibt und möglicherweise können Sie den Wert, aber:
- Dies ist nicht einer jener Fälle ist. Prozesse werden vollständig asynchron von der VM ausgeführt.
- Die Möglichkeit, direkt auf den Wert einer Future zuzugreifen, wurde im libv2-Update entfernt.
Die Art und Weise, dies zu umgehen ist die Funktion eine Zukunft zurückkehren enthalten haben Process.run()
, und alle deine Logik in den Rückruf, die Sie scheinen zu wissen, so gehe ich davon aus, dass Ihr Code hier ist nur ein Beispiel und du machst das nicht wirklich in main()
. In diesem Fall haben Sie leider kein Glück - Sie müssen Ihre Funktion async machen, wenn Sie wissen, ob der zukünftige Wert bekannt ist oder ob der Vorgang abgeschlossen ist.
Async in einer single-threaded Umgebung, wie Dart und Javascript, ist viral und verbreitet immer Ihren Call-Stack. Jede Funktion, die diese Funktion aufruft, und jede Funktion, die sie aufruft usw., müssen asynchron sein.
Ich sehe keine einfache Möglichkeit, das zu tun. Was ist das Problem mit dem Rückruf? Versuchen Sie nur, die Callback-Verschachtelung zu reduzieren? –
Ich möchte nur wissen, ob es möglich ist. – Leksat