Icicle v0.9.4 Release Notes
Release Date: 2016-01-18 // about 8 years ago-
โ Added
- โ Added
of()
,fail()
,concat()
,zip()
, andrange()
functions to theIcicle\Observable
namespace. See each function for more information. - โ Added
reduce()
function toIcicle\Observable\Observable
that executes an accumulator function on each emitted value, returning an observable that emits the current accumulated value after each invokation of the accumulator.
๐ Changed
- 0๏ธโฃ Passing
null
(now the default argument) toIcicle\Loop\Loop::maxQueueDepth()
orIcicle\Loop\maxQueueDepth()
will return the current max queue depth without modifying it. Icicle\Observable\Emitter
can delegate to another instance ofIcicle\Observable\Observable
by emitting the observable. Values from the emitted observable will then be emitted as though they were emitted by the delegating observable. The$emit
callable will resolve with the return value of the emitted observable.- ๐
Icicle\Observable\Emitter
now allows multiple coroutines to be created from the$emit
callable simultaneously. This makes no difference for emitters usingyield
with$emit
, but simplifies implementations using$emit
as part of a callback that may be called before the previous value has finished emitting. SeeIcicle\Observable\merge()
for an example of a function that uses$emit
as a callback. - ๐ป If an awaitable emitted from
Icicle\Observable\Emitter
is rejected, the observable will fail with the exception used to reject the awaitable. - ๐
Icicle\Observable\observe()
now takes a callable$onDisposed
argument that is invoked with the callable passed to the emitting function if the observable is disposed. This function can be used to remove the callable from the event emitter.
๐ Fixed
- ๐ Fixed #14 caused by queued function arguments being retained in the loop until a full tick completed, consuming more memory than necessary. Arguments are now freed immediately after executing each queued function.
- โ Added