Spiacente, semplicemente non è possibile.
ci sono alcuni casi in cui una funzione restituisce new Future.immediate(value)
e plausibilmente si potrebbe ottenere il valore, ma:
- Questo non è uno di quei casi. I processi vengono eseguiti in modo completamente asincrono dalla VM.
- La possibilità di accedere direttamente al valore di un Futuro è stata rimossa nell'aggiornamento di libv2.
Il modo per gestire questa situazione è quello di avere la funzione di contenimento Process.run()
restituire un futuro, e fare tutto la logica del callback, che ti sembra di conoscere, in modo da sto supponendo che il codice qui è solo un esempio e non lo stai davvero facendo in main()
. In questo caso, sfortunatamente, sei praticamente sfortunato: devi rendere la tua funzione asincrona se dipendi dal conoscere il valore futuro o che l'operazione è stata completata.
Async in un ambiente a thread singolo, come Dart e Javascript, è virale e si propaga sempre sullo stack delle chiamate. Ogni funzione che chiama questa funzione e ogni funzione che le chiama ecc. Deve essere asincrona.
fonte
2013-02-11 21:24:48
Non vedo un modo semplice per farlo. Qual è il problema con l'utilizzo del callback? Stai solo cercando di ridurre il nesting di callback? –
Voglio solo sapere se è possibile. – Leksat