我正在使用Giraffe使用Async工作流创建本机.NET任务,因为我需要与Discord.NET库的互操作性.我有一个事件需要一个Task,但我写的事件处理程序返回一个Task<unit>由于某种原因,类型检查器不够聪明,不能意识到它是相同的事情.有没有办法将其转换Task<unit>为直线Task?
这是我的代码:
let messageReceived (msg : SocketMessage) =
    task {
        let author = msg.Author.Username
        let text = msg.Content
        match msg.Author.Username with
            | "Monika" -> ()
            | usr ->
                if text.ToLower().StartsWith "<@407367655830585344> say" then
                    text.Substring 26 |> msg.Channel.SendMessageAsync |> ignore
                else if text.ToLower().StartsWith "<@407367655830585344>" then
                    let response = (Lines.VoiceLines |> Extras.randomElement).Replace("[player]", author)
                    msg.Channel.SendMessageAsync response |> ignore
                else if text.ToLower().StartsWith "delete" then
                    text.Substring 7 + ".chr deleted" |> msg.Channel.SendMessageAsync |> ignore
                else if Extras.onein …Run Code Online (Sandbox Code Playgroud)