网络连续剧 api 可读流代码无法正常工作
web serial api readable stream code not work well
while (true) {
let { value, done } = await reader.read();
if (done) {
// |reader| has been canceled.
console.log("brack");
break;
}
console.log(value);
console.log()
}
} catch (error) {
// Handle |error|...
} finally {
reader.releaseLock();
console.log("f1");
}
}
当我从串口读取数据时,我的整个数据都被完美接收,但是“done”变量的值从未改变它仍然是假的,代码在这个阶段停止“让{值,完成} = 等待 reader.read();".
除非串行端口遇到错误,否则您将始终能够读取更多数据,因此永远不会将 done
设置为 true
。如果您的程序已经读取了它打算读取的所有数据,那么它应该停止调用 read()
直到它想要接收更多数据。请注意,如果设备发送的数据多于打开端口时指定的缓冲区大小,如果您的应用程序未调用 read()
将其从缓冲区中拉出,则此数据可能会丢失。
也在这里回答:
Web Serial Api ->{value,done} -> the done is not getting true even after reading the whole data sent by the serial port device
我只在调用 reader.cancel()
后观察到 done=true
。
你可以在我的 https://webserial.io 的源代码中看到它:
while (true) {
let { value, done } = await reader.read();
if (done) {
// |reader| has been canceled.
console.log("brack");
break;
}
console.log(value);
console.log()
}
} catch (error) {
// Handle |error|...
} finally {
reader.releaseLock();
console.log("f1");
}
}
当我从串口读取数据时,我的整个数据都被完美接收,但是“done”变量的值从未改变它仍然是假的,代码在这个阶段停止“让{值,完成} = 等待 reader.read();".
除非串行端口遇到错误,否则您将始终能够读取更多数据,因此永远不会将 done
设置为 true
。如果您的程序已经读取了它打算读取的所有数据,那么它应该停止调用 read()
直到它想要接收更多数据。请注意,如果设备发送的数据多于打开端口时指定的缓冲区大小,如果您的应用程序未调用 read()
将其从缓冲区中拉出,则此数据可能会丢失。
也在这里回答: Web Serial Api ->{value,done} -> the done is not getting true even after reading the whole data sent by the serial port device
我只在调用 reader.cancel()
后观察到 done=true
。
你可以在我的 https://webserial.io 的源代码中看到它: