Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 在F中调用Task.Builder函数#_F# - Fatal编程技术网

F# 在F中调用Task.Builder函数#

F# 在F中调用Task.Builder函数#,f#,F#,线路 | Log (message, ack) -> let CreateEventSourcingConnection() = task { let connection = let ipEndPoint = IPEndPoint(IPAddress.Loopback, 1113) EventStoreCon

线路

         | Log (message, ack) ->

         let CreateEventSourcingConnection() =
             task {
                 let connection =
                     let ipEndPoint = IPEndPoint(IPAddress.Loopback, 1113)
                     EventStoreConnection.Create(ipEndPoint)
                 do! connection.ConnectAsync()
                 return connection
             }

         let connectionM = CreateEventSourcingConnection ()

         let AddEventToStreamAsync (connection: IEventStoreConnection) streamName eventName message =
             task {
                 let serializedEventData =
                     message
                     |> JsonConvert.SerializeObject
                     |> Encoding.UTF8.GetBytes
                 let event = EventData(Guid.NewGuid(), eventName, true, serializedEventData, null)

                 let! _ = connection.AppendToStreamAsync(streamName, int64 ExpectedVersion.Any, event)
                 ()
             }
         AddEventToStreamAsync connectionM "a" "a"
产生此错误

类型“Task”与类型“IEventStoreConnection”不兼容


我怎样才能解决这个问题?

您需要执行
让我来
对于从
CreateEventSourcingConnection
返回的
任务
,在将其传递给
AddEventToStreamAsync
之前,一种方法是更改签名以接受任务,然后
在其内部,如下所示:

AddEventToStreamAsync connectionM "a" "a"
让AddEventToStreamAsync(connectionTask:Task)streamName事件名消息=
任务{
让我们序列化deventdata=
消息
|>JsonConvert.SerializeObject
|>Encoding.UTF8.GetBytes
let event=EventData(Guid.NewGuid(),eventName,true,serializedEventData,null)
让!连接=连接任务
let!\ux=connection.AppendToStreamAsync(streamName,int64 ExpectedVersion.Any,事件)
()
}
AddEventToStreamAsync连接M“a”“a”
let AddEventToStreamAsync (connectionTask: Task<IEventStoreConnection>) streamName eventName message =
    task {
        let serializedEventData =
            message
            |> JsonConvert.SerializeObject
            |> Encoding.UTF8.GetBytes
        let event = EventData(Guid.NewGuid(), eventName, true, serializedEventData, null)

        let! connection = connectionTask
        let! _ = connection.AppendToStreamAsync(streamName, int64 ExpectedVersion.Any, event)
        ()
    }

AddEventToStreamAsync connectionM "a" "a"