An open API service indexing awesome lists of open source software.

https://github.com/randy3k/retry

Repeated Evaluation
https://github.com/randy3k/retry

Last synced: 28 days ago
JSON representation

Repeated Evaluation

Awesome Lists containing this project

README

        

---
output:
github_document:
html_preview: false
---

```{r results='asis', echo = FALSE, eval = TRUE}
d <- read.dcf("DESCRIPTION")
```

```{r results="asis", echo = FALSE, eval = TRUE}
title <- d[colnames(d) == "Title"]
cat(c("# ", paste(trimws(strsplit(title, "\n")[[1]]), collapse = " ")))
```

[![check](https://github.com/randy3k/retry/actions/workflows/check.yaml/badge.svg)](https://github.com/randy3k/retry/actions/workflows/check.yaml)
[![codecov](https://codecov.io/gh/randy3k/retry/branch/master/graph/badge.svg)](https://app.codecov.io/gh/randy3k/retry)
[![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/retry)](https://cran.r-project.org/package=retry)
[![](http://cranlogs.r-pkg.org/badges/grand-total/retry)](https://cran.r-project.org/package=retry)

Github: [https://github.com/randy3k/retry](https://github.com/randy3k/retry)

Documentation: [https://randy3k.github.io/retry](https://randy3k.github.io/retry/)

```{r results="asis", echo = FALSE, eval = TRUE}
cat(d[colnames(d) == "Description"])
```

## Installation

You can install the released version of retry from [CRAN](https://CRAN.R-project.org) with:

```r
install.packages("retry")
```

The development version could be installed with:

```r
devtools::install_github("randy3k/retry")
```

## Example

Some examples of `retry` and `wait_until`.
```r
library(retry)

f <- function(x) {
if (runif(1) < 0.9) {
stop("random error")
}
x + 1
}

# keep retring when there is a random error
retry(f(1), when = "random error")
#> [1] 2
# keep retring until a requirement is satisified.
retry(f(1), until = function(val, cnd) val == 2)
#> [1] 2
# or using one sided formula
retry(f(1), until = ~ . == 2)
#> [1] 2

z <- 0
later::later(function() z <<- 1, 1)
wait_until(z == 1)
z
#> [1] 1
```