Added future_promise() which returns a
promise that executes the expression using
future::future(). future_promise() should
(typically) be a drop-in replacement for any
future::future() function call.
future_promise() will not execute future work
faster than future::future(), but
future_promise() will only submit future jobs
if a worker is available. If no workers are available,
future_promise() will hold the expression information in a
promise until a worker does become available to better take
advantage of computing resources available to the main R session. For
more information, please see the future_promise()
article. (#62)
Added visibility support for
Promise$then(onFulfilled). (#59)
future::resolved()
and future::value() by discarding the corrupt future.
(#37)Fixed #49: promise_all() previously did not handle
NULL values correctly. (#50))
new_promise_domain now takes a
wrapOnFinally argument, which can be used to intercept
registration of finally(). Previous versions treated
finally as passing the same callback to
then(onFulfilled=..., onRejected=...), and ignoring the
result; for backward compatibility, promise domains will still treat
finally that way by default (i.e. if
wrapOnFinally is NULL, then
finally will result in wrapOnFulfilled and
wrapOnRejected being called, but if
wrapOnFinally is provided then only
wrapOnFinally will be called). (#43)