let mutable earlyReturn = false
if consumerConfig.ResetIncludeHead then
let! result = postAndAsyncReply this.Mb (fun channel ->
SeekAsync (SeekType.MessageId lastMessageId, channel))
match result with
| Error ex ->
channel.SetException(ex)
earlyReturn <- true
| Ok () -> ()
if not earlyReturn then
... rest of CE ...
}
Сделать CE над type ('e, 'a) either = | Ok of 'a | Error of 'e type m = ('e, 'a) either task А чо, таск не умеет в исключения, что ли?
Делать early return исключениями - ну такое
Непонятно зачем ты тут вообще делал мутабельную переменную. Верни результат матча
Обсуждают сегодня