Nel vecchio stile NodeJS atteso, quando si chiama una funzione che ha un aspetto asincrono, si passa al noto callback che viene chiamato quando viene eseguita la parte asincrona. Questo non ha inquinato il valore di ritorno della funzione mentre la funzione può ancora restituire qualcosa di significativo al chiamante in modo sincrono.
Il problema con lo schema async / await ora è che per usarlo, devi decidere se una funzione è sincrona o asincrona. Ciò significa che se ho una funzione esistente che è sincrona e ha un valore di ritorno che verrà calcolato in modo sincrono e quindi restituito quando la funzione ritorna, e voglio aggiungere un componente asincrono, in precedenza aggiungerei una richiamata e cambiare i chiamanti. Ma ora devo rendere il valore restituito il valore asincrono e il valore di ritorno originale --- trovare un altro modo. Quale sarebbe?
Utilizzeresti un parametro 'out' in C #? Non è una buona pratica. Vuoi passare in un oggetto il cui stato si modifica per restituire il valore di sincronizzazione?
La tendenza attuale è restituire una tupla e un oggetto con più valori. Ma uno di questi valori può essere sincrono e l'altro asincrono?