我有一个ByteString需要通过GHCJS中的XHR发送,但我不能在我的生活中找出如何将ByteString转换为XHR的RequestData
data RequestData = NoData
| StringData JSString
| TypedArrayData (forall e. SomeTypedArray e Immutable)
| FormData [(JSString, FormDataVal)]
显然TypedArrayData
是我需要使用的,但是我没有运气,想知道如何转换ByteString以适应那里。我看了this,我尝试过这样的事情。
setData r bs = do
let (b, _, _) = fromByteString $ toStrict bs
return r { XHR.reqData = XHR.TypedArrayData $ getUint8Array b }
但由于某种原因,我遇到了种类的奇怪错误。
Couldn't match kind ‘AnyK’ with ‘*’
Expected type: GHCJS.Buffer.Types.SomeBuffer
'ghcjs-base-0.2.0.0:GHCJS.Internal.Types.Immutable
Actual type: Buffer
In the first argument of ‘getUint8Array’, namely ‘b’
In the second argument of ‘($)’, namely ‘getUint8Array b’
据我所知,这些类型不应该是不相容的。