官网的例子
const listener = Deno.listen({ port: 8888 })
for await (const conn of listener) {
}
其中只看到有个方法conn.read(Uint8Array)写入到Uint8Array里,但Uint8Array必须设置大小,太小获取不全 太大请求有问题,怎么解决?
官网的例子
const listener = Deno.listen({ port: 8888 })
for await (const conn of listener) {
}
其中只看到有个方法conn.read(Uint8Array)写入到Uint8Array里,但Uint8Array必须设置大小,太小获取不全 太大请求有问题,怎么解决?
conn.read(Uint8Array)
这里的Uint8Array是指buffer
,你需要先指定buffer的大小比如32*1024,然后你要设置一个loop来执行conn.read
直到 EOF,每次read会返回一个数字代表读取了多少个字节到buffer里,如果这个数字小于你buffer的cap,你需要做一次slice:buffer.slice(0,n)
表示当前read的实际结果。然后把buffer拼接起来才是你要的结果。
但实际上很少这样做的,除非你是要自己去处理数据流,一般都会使用module去处理,比如readline,可以分行的读取数据。
按照你的说法,确实可以 我设置了一个递归来循环写入 结果就是一个请求有几率会超时卡死,如果有相关文档或例子,希望给我看看。
for await
里面不要再使用 await
了