Skip to content

Commit 96e97b8

Browse files
authored
Simplify promises method (#379)
* Simplify promises method * Simplify news item
1 parent e13fab4 commit 96e97b8

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

NEWS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* `daemon()` gains a `tlscert` argument for custom TLS certificates.
1717
The change in argument name lets this be passed when making a `daemons()` call (#344).
1818
* The `tls` argument at `daemon()`, `launch_local()` and `launch_remote()` is deprecated.
19+
* `as.promise()` method for mirai made robust for high-throughput scenarios (#377).
1920
* A `mirai()` evaluated on an ephemeral daemon now returns invisibly, consistent with other cases (#351).
2021
* Requires nanonext >= [1.6.2.9000].
2122

R/promises.R

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,27 +46,17 @@ as.promise.mirai <- function(x) {
4646
promise <- .subset2(x, "promise")
4747

4848
if (is.null(promise)) {
49-
promise <- if (unresolved(x)) {
50-
promises::promise(
51-
function(resolve, reject) .keep(x, environment())
52-
)$then(
53-
onFulfilled = function(value, .visible) {
54-
is_error_value(value) && !is_mirai_interrupt(value) &&
55-
stop(if (is_mirai_error(value)) value else nng_error(value))
56-
value
57-
}
58-
)
59-
} else {
60-
value <- .subset2(x, "value")
61-
promises::promise(
62-
function(resolve, reject)
63-
resolve({
64-
is_error_value(value) && !is_mirai_interrupt(value) &&
65-
stop(if (is_mirai_error(value)) value else nng_error(value))
66-
value
67-
})
68-
)
69-
}
49+
promise <- promises::promise(
50+
function(resolve, reject) {
51+
if (unresolved(x)) .keep(x, environment()) else resolve(.subset2(x, "value"))
52+
}
53+
)$then(
54+
onFulfilled = function(value, .visible) {
55+
is_error_value(value) && !is_mirai_interrupt(value) &&
56+
stop(if (is_mirai_error(value)) value else nng_error(value))
57+
value
58+
}
59+
)
7060

7161
`[[<-`(x, "promise", promise)
7262
}

0 commit comments

Comments
 (0)