Innanzitutto, il contesto di ciò che sto facendo. Sto facendo funzionare un HttpServer che sta trattando HttpRequests.Aggiungere una proprietà a un oggetto (o almeno un risultato simile)
HttpServer.bind(ADDRESS, PORT).then((HttpServer server) {
listenSubscription = server.listen(onRequest);
});
void onRequest(HttpRequest request) {
//handle request here
}
vorrei aggiungere un po 'di registrazione a tutto questo, ea causa della natura asincrona di tutto questo, vogliamo aggiungere qualche marcatore che identifica le richieste (in modo da poter abbinare le ricevute di richiesta con le risposte, ad esempio). Il codice all'interno di onRequest()
chiama un sacco di altre funzioni per fare cose diverse (gestire richieste GET vs POST, ecc.), Quindi la semplice generazione di un ID nella parte superiore è una soluzione ingombrante in quanto dovrei passare attraverso tutti quelli altre chiamate di funzione. Tuttavia, sto già passando intorno all'oggetto HttpRequest
, quindi ho pensato che sarebbe stato carino inserire un campo id
, proprio come faresti in Javascript, tranne che Dart non funziona in questo modo.
Pensieri poi è andato a sottoclassi della classe HttpRequest
, ma convertendo l'oggetto HttpRequest
il metodo onRequest()
riceve sembrava molto più guai e spese generali che le mie esigenze richieste.
Quindi, chiedo, c'è qualche modo di Dart idiomatico che collega alcuni dati a un oggetto esistente? Se non c'è qualcosa di idiomatico, qual è il modo più semplice (sia in termini di codice che di complessità di runtime) a cui puoi pensare di realizzare questo?
È possibile creare una mappa con oggetto come chiave e valore come dati allegati. Non carina, ma semplice. – JAre
Una mappa era qualcosa che avevo considerato, ma avrebbe richiesto la pulizia manuale dei rifiuti, che mi ha fatto venir voglia di trovare qualcosa di meglio. Sembra che "Expando" (vedi risposta accettata) sia più o meno la stessa cosa, ma con una pulizia automatica e un pacchetto piuttosto interessante. –