Skip to content
Prev 392206 / 398502 Next

aborting the execution of a function...

You could write a function that returns an environment (or list if you
prefer) containing the results collected before the interrupt by using
tryCatch(interrupt=...).  E.g.,

doMany <- function(names) {
    resultEnv <- new.env(parent=emptyenv())
    tryCatch(
        for(name in names) resultEnv[[name]] <- Sys.sleep(1), # replace
Sys.sleep(1) by getStuffFromWeb(name)
        interrupt = function(e) NULL)
    resultEnv
}

Use it as
^C   user  system elapsed
  0.001   0.000   4.390
[1] "Alabama"  "Alaska"   "Arizona"  "Arkansas"
$Alabama
NULL

$Alaska
NULL

$Arizona
NULL

$Arkansas
NULL

-Bill

On Wed, Jul 13, 2022 at 12:20 PM akshay kulkarni <akshay_e4 at hotmail.com>
wrote:

  
  
Message-ID: <CAHqSRuQoLdy6QtG=WFRYj-SBhhdRN9qu42b5ESnfYJz3EFzK2w@mail.gmail.com>
In-Reply-To: <PU4P216MB15682B367ABD8E231ECAA5A3C8899@PU4P216MB1568.KORP216.PROD.OUTLOOK.COM>