我有一个应用程序,它是nodejs + express + reactjs。在Node.js端,我正在使用mysql存储过程获取大量数据行,并将响应异步发送给客户端。但这会导致浏览器由于体积大而延迟。为了解决这个问题,我想从节点发送数据块到客户端。一次可能是10K,然后继续发送进一步的数据,这些数据将添加到客户端的现有数据中。我应该在这里使用哪种技术?
我尝试使用流数据并将其发送到10000行集中。如下所示:
return new Promise((resolve, reject)=>{
var request = new sql.Request(dbConn);
request.stream = true;
request.query(<sp>);
let rowsToProcess = [];
request.on('row', row => {
rowsToProcess.push(row);
if (rowsToProcess.length === 10000) {
resolve(rowsToProcess)
request.pause();
processRows();
}
});
request.on('done', () => {
processRows();
});
function processRows() {
// process rows
rowsToProcess = [];
request.resume();
}
});
但是它仅发送前10000条记录。在服务器端之后,它给出错误为:
uncaughtException:request.pause不是函数TypeError: request.pause不是函数