Получить Uint16 из читаемого потока
В следующем примере я извлекаю 2 необработанных байта.
fetch('https://www.random.org/cgi-bin/randbyte?nbytes=2')
.then(response=>response.body.getReader())
.then(reader=>0/*Here convert to Uint16*/)
Любая идея, как преобразовать результирующий читаемый поток Uint16 целое число с использованием 2 байтов?
1 ответ
Если вы уверены, что вы получите все необходимые байты в первом фрагменте, то вы можете попробовать это:
fetch('https://www.random.org/cgi-bin/randbyte?nbytes=2')
.then(response=>response.body.getReader())
.then(reader => reader.read())
.then(result => console.log(new DataView(result.value.buffer).getUint16()));
Увидеть ReadableStreamDefaultReader.read()
, Uint8Array
, а также DataView
,
Или более простой способ:
fetch('https://www.random.org/cgi-bin/randbyte?nbytes=2')
.then(response => response.arrayBuffer())
.then(buffer => console.log(new DataView(buffer).getUint16()));