Я делаю много асинхронных веб-запросов и используя Async.Parallel. Что-то вроде:F # Продолжить на Async.Catch
xs
|> Seq.map (fun u -> downloadAsync u.Url)
|> Async.Parallel
|> Async.Catch
Некоторые запросы могут исключать исключения, я хочу их зарегистрировать и продолжить с остальными адресами. Я нашел функцию Async.Catch, но это остановит вычисление, когда вызывается первое исключение. I know Я могу использовать выражение try...with
в выражении async, чтобы вычислить весь список, но, я думаю, это подразумевает передачу функции журнала моей функции downloadAsync
, изменяющей его тип. Есть ли другой способ поймать исключения, зарегистрировать их и продолжить с остальными URL-адресами?
Ваш вопрос непонятен мне ... Что вы хотите за пределами 'xs |> Seq.map (fun u -> Async.Catch <| downloadAsync u.Url) |> Async.Parallel'? – ildjarn
извините, если плохой английский в моем вопросе :(Код в вашем комментарии работает для меня! Спасибо – Nicolocodev