java web RxJava是如何實現(xiàn)訂閱關(guān)系的?
RxJava是如何實現(xiàn)訂閱關(guān)系的?在GitHub上正式引入的rxjava是:一個庫,用于使用javavm的可觀察序列來編寫異步和基于事件的程序。在JVM上使用可觀察序列來形成一個異步的基于事件的庫。很
RxJava是如何實現(xiàn)訂閱關(guān)系的?
在GitHub上正式引入的rxjava是:一個庫,用于使用javavm的可觀察序列來編寫異步和基于事件的程序。在JVM上使用可觀察序列來形成一個異步的基于事件的庫。很難讀懂。它本質(zhì)上是異步觀察者模式。主要有可觀察、觀察、事件和訂閱等概念。Observer通過subscribe observable知道observable中的事件并做出相應(yīng)的響應(yīng)
rxjava比eventbus應(yīng)用更廣泛。Eventbus僅用作消息傳遞工具,但它在rxjava中幾乎可以做任何事情。
如果是Android開發(fā),可以使用rxandroid,它是rxjava的擴(kuò)展。再加上square公司的復(fù)古合身,你可以輕松上網(wǎng)。
眾所周知,asyctask通常用于Android中的異步操作。然而,asyctask有很多缺點,比如不能方便地終止任務(wù)的執(zhí)行。
Rxandroid完全可以代替asycTask來完成各種異步操作,還有bindactivity和bindfragment方法。異步操作完全不需要考慮活動和片段的生命周期,還有更強(qiáng)大的鏈調(diào)用,可以使程序非常簡單。
eventbus的一個缺點是不能混淆所有使用eventbus的類,否則evnetbus找不到OneEvent方法。
以上,建議使用rxandroid。
rxandroid和rxjava的區(qū)別?
Rx:功能響應(yīng)編程。響應(yīng)代碼的基本組件是可觀察的和訂戶(事實上,觀察器是最小的構(gòu)建塊,但訂戶在實踐中使用最多,因為訂戶對應(yīng)于可觀察的)。Observable發(fā)送消息,而subscriber用于消費(fèi)消息。主要區(qū)別在于,在Rx中建立訂閱關(guān)系時,可以使用操作符進(jìn)行任何處理(如轉(zhuǎn)換數(shù)據(jù)、更改數(shù)據(jù)等),并且可以處理異步操作。Eventbus相當(dāng)于廣播。當(dāng)它被發(fā)送時,它總是可以接收它。發(fā)送后不能更改任何數(shù)據(jù)。如果需要更改,則必須重新發(fā)布。