如何对流式处理 mssql nodejs 查询进行分页?

how do I paginate streaming mssql nodejs queries?

提问人:Rilcon42 提问时间:11/10/2023 更新时间:11/10/2023 访问量:11

问:

使用 nodejs mssql 包,我在 promise 中工作流式查询,但我试图弄清楚如何清理所有内容并允许我在调用方法时通常发出行。即在传入流时实现 .next() 方法或类似的东西,这样我就可以更改行的处理方式,而不必在我想以不同方式处理数据的每种情况下重新实现行、错误等。

const mssql = require('mssql');
let stream=new mssql.Request(pool)
stream.stream=true;
stream.query(querystring)

//promise handling stream events

new Promise((resolve, reject) => {
    let rowcount=0;
    let rowbuff:object[]=[]
    stream
      .on("row", async (_json:object) => {
        stream.pause();
        rowbuff.push(_json)
        if(rowbuff.length>=buffsize){
          await handleRows(rowbuff);
          rowbuff=[]
        }
        rowcount++;
        stream.resume()
      })
      .on("error", (err:any)=>reject(JSON.stringify(err)))
      .on("done", async () => {
        //process any remaining rows in SERIAL
        await handleRows(rowbuff);
        rowbuff=[]
      });
  });
节点 .js

评论


答: 暂无答案