Po pierwsze, kontekst tego, co robię. Używam HttpServer, który obsługuje HttpRequests.Dodaj obiekt do obiektu (lub przynajmniej podobny wynik)
HttpServer.bind(ADDRESS, PORT).then((HttpServer server) {
listenSubscription = server.listen(onRequest);
});
void onRequest(HttpRequest request) {
//handle request here
}
Chciałbym dodać rejestrowanie tego wszystkiego, a ze względu na asynchroniczną naturę tego wszystkiego, chcemy dodać jakąś identyfikującą marker do wniosków (tak mogę dopasować się wpływy życzenie z odpowiedzi, na przykład). Kod wewnątrz onRequest()
wywołuje mnóstwo innych funkcji do robienia różnych rzeczy (obsługuje żądania GET a POST, itd.), Więc po prostu generowanie identyfikatora na górze jest kłopotliwym rozwiązaniem, ponieważ musiałbym je przekazać przez te wszystkie inne wywołania funkcji. Jednak już przechodzę wokół obiektu HttpRequest
, więc pomyślałem, że byłoby miło rzucić na niego pole id
, tak jak w JavaScript, z wyjątkiem tego, że Dart nie działa w ten sposób.
Myśli następnie przeszły na podklasę klasy HttpRequest
, ale konwersja obiektu HttpRequest
otrzymanego przez metodę wydawała się znacznie bardziej kłopotliwa niż moje potrzeby.
Więc pytam, czy istnieje jakaś idiomatyczna metoda darta wiążąca niektóre dane z istniejącym obiektem? Jeśli nie ma czegoś idiomatycznego, to co jest najprostsze (zarówno w złożoności kodu, jak i w czasie wykonywania), w jaki sposób można to osiągnąć?
Możesz utworzyć mapę z obiektem jako kluczem i wartością jako dane dołączone. Nie ładne, ale proste. – JAre
Mapa była czymś, co rozważałem, ale wymagałoby ręcznego czyszczenia śmieci, które sprawiło, że chciałbym znaleźć coś lepszego. Wydaje się, że "Expando" (patrz zaakceptowana odpowiedź) jest mniej więcej tym samym, ale z automatycznym czyszczeniem i opakowane w ładną paczkę. –