RxJava v1.2.3 发布,一个实现异步操作的库

jopen 8年前
   <p style="text-align: center;"><strong><img alt="" src="https://simg.open-open.com/show/27e89a5a287f2aa133ed68e1e8b7e831.png" /></strong></p>    <p> </p>    <p>RxJava一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。说到根上,它就是一个实现异步操作的库,而别的定语都是基于这之上的。同样是做异步,为什么人们用它,而不用现成的 AsyncTask / Handler / XXX / ... ?,原因是RxJava简洁,异步操作很关键的一点是程序的简洁性,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。 Android 创造的 AsyncTask 和Handler ,其实都是为了让异步代码更加简洁。RxJava 的优势也是简洁,但它的简洁的与众不同之处在于,随着程序逻辑变得越来越复杂,它依然能够保持简洁。</p>    <p style="text-align: center;"><a href="https://simg.open-open.com/show/590895c0b975a817143b0f53b870e71b.jpg"><img alt="" src="https://simg.open-open.com/show/590895c0b975a817143b0f53b870e71b.jpg" /></a></p>    <p style="text-align: center;"><a href="https://simg.open-open.com/show/039f09fd6005089241137560455ed074.png"><img alt="" src="https://simg.open-open.com/show/039f09fd6005089241137560455ed074.png" /></a></p>    <p> </p>    <h2>更新日志</h2>    <ul>     <li><a href="/misc/goto?guid=4958995685968258127">Pull 4846</a>: Specify the system parameters configuring the schedulers in the <code>Schedulers</code> javadoc.</li>    </ul>    <ul>     <li><a href="/misc/goto?guid=4958995686071955416">Pull 4777</a>: add <code>AssertableSubscriber</code> to provide method chained version of <code>TestSubscriber</code> and support a <code>test()</code> method on the base reactive classes.</li>     <li><a href="/misc/goto?guid=4958995686169299823">Pull 4851</a>: add <code>Single.fromEmitter</code></li>     <li><a href="/misc/goto?guid=4958995686258641914">Pull 4852</a>: <code>Single.takeUntil</code> <code>CancellationException</code> message enhancements</li>    </ul>    <ul>     <li><a href="/misc/goto?guid=4958995685968258127">Pull 4846</a>: remove <code>ObjectPool</code>, code style cleanups</li>    </ul>    <h3>Bug修复</h3>    <ul>     <li><a href="/misc/goto?guid=4958995686350661510">Pull 4826</a>: <code>Schedule.when()</code> bug fix</li>     <li><a href="/misc/goto?guid=4958995686427190221">Pull 4830</a>: <code>Completable.doAfterTerminate</code> to run after <code>onError</code> as well.</li>     <li><a href="/misc/goto?guid=4958995686540753865">Pull 4841</a>: replace non-serializable value of <code>OnNextValue</code> with its <code>toString</code>.</li>     <li><a href="/misc/goto?guid=4958995686620308985">Pull 4849</a>: fix <code>Completable.concat</code> & <code>merge</code> hanging in async situations.</li>    </ul>    <h2>下载</h2>    <ul>     <li><a href="/misc/goto?guid=4958995686710793151" rel="nofollow"><strong>Source code</strong> (zip)</a></li>     <li><a href="/misc/goto?guid=4958995686804195738" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li>    </ul>    <p>本站原创,转载时保留以下信息:<br /> 本文转自:深度开源(open-open.com)<br /> 原文地址:<a href="http://www.open-open.com/news/view/f1c3376">http://www.open-open.com/news/view/f1c3376</a></p>