2
我已閱讀Akka streams materialization concept,並理解流物化是:阿卡流:是什麼mapMaterializedValue意味着
,以運行服用流描述(圖),並分配它需要的所有必要資源的過程。
我跟着一個例子,使用mapMaterializedValue構建我的akka流,將消息發送到隊列。代碼的目的是推動信息流藍圖後,排隊已經建立和代碼工作,但我真的不明白是什麼mapMaterrializaedValue代碼做:
Promise<SourceQueueWithComplete<String>> promise = new Promise.DefaultPromise<>();
Source<String, SourceQueueWithComplete<String>> s = Source
.queue(100, OverflowStrategy.fail())
.mapMaterializaedValue(queue -> {
promise.trySuccess(queue);
});
source.toMat(Sink.foreach(x -> System.out.println(x)), Keep.left()).run(materIalizer);
promise.<SourceQueueWithComplete<String>>future().map(mapMapperFunction(), actorSystem.dispatcher());
謝謝弗拉基米爾,mapMaterializedValue的很清楚交代,現在我瞭解它是如何工作的。關於物化價值的另外一個問題,就像未來? – zt1983811
否;物化價值既不要求爲期貨(例如,這些例子中的排隊不會被作爲未來返回,雖然有時候墊價值是未來),也不與期貨「相似」 - 唯一的這種相似性是mapMaterializedValue'和'Future.map'方法名稱中的子字符串'map',這是因爲這種轉換幾乎總是被稱爲'map'。你可以在我的答案[這裏]找到更多關於物化值的內容(https://stackoverflow.com/questions/39727729/akka-streams-what-does-mat-represents-in-sourceout-mat/39729078#39729078)。 –
感謝您的回答,我會看看那篇文章。 – zt1983811