Ist es sinnvoll, core.async-Kanäle zu verwenden, um die Post-Ergebnisse von http-kit in clojure zu verarbeiten?

8

Ich bin neu bei Clojure und schreibe eine Bibliothek, die Post-Ergebnisse für eine Antwort an einen Server sendet. Ich nehme die Antwort auf, indem ich sie auf einen asynchronen Core-Kanal lege. Ist das gesund oder gibt es einen besseren Weg?

Hier ist ein Überblick über das, was ich mache:

%Vor%

Hier ist der eigentliche Code, den ich verwende: Ссылка

Es funktioniert, aber ich hatte eine harte Zeit zu überprüfen, ob es der richtige Weg ist, dies zu tun.

    
gilmaso 12.12.2013, 04:04
quelle

1 Antwort

8

core.async ist mächtig, aber es scheint wirklich, wenn es darum geht, komplexere Asynchronität zu koordinieren. Wenn Sie die Antwort immer blockieren möchten, empfehle ich stattdessen, stattdessen promise zu verwenden, da es ein wenig ist einfacher:

%Vor%

Wenn Sie mit Kanälen arbeiten möchten, kann der Code ein bisschen aufgeräumt werden. Wichtig ist, dass Sie nicht alles in einen go -Block einbinden müssen; go ist erstaunlich für die Koordinierung der Asynchronität, aber letztlich ist der Kanal eines Kanals:

%Vor%     
Beyamor 12.12.2013, 06:06
quelle

Tags und Links