首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用繁琐的连接,需要获得总数据。

使用繁琐的连接,需要获得总数据。
EN

Stack Overflow用户
提问于 2015-08-10 08:58:23
回答 1查看 974关注 0票数 2

我对乏味的Es-6还不熟悉,这可能是个愚蠢的问题,但我正在挣扎,我想要数组中的总数据,使用乏味的连接,这是我的代码:

代码语言:javascript
复制
 getZipData() {
        var Connection = require('tedious').Connection;
        Request = require('tedious').Request;
        var config = {
            userName: 'xx',
            password: 'xxxx',
            server: 'xxx', // You can use 'localhost\\instance' to connect to named instance
            options: {
                database: 'xxxxx',
                rowCollectionOnDone:'true'
            }
        }
        var connection = new Connection(config);
        var jsonArray = [];
        connection.on('connect', function (err) {
            if (err) {
                console.log(err)
            }

            var sql = "SELECT * FROM xxxxx";
            return new Promise(function(resolve,reject){
            var request = new Request(sql,
                (err, rowCount, rows)=>{
                    if (err) {
                        reject(err);
                    }
                    else {
                        alert("rows");
                        console.log(rowCount + 'rows');
                    }
                });
                request.on('row', (columns)=>{
                        var rowObject = {};
                        columns.forEach((column)=> {
                            rowObject[column.metadata.colName] = column.value;
                        });
                        jsonArray.push(rowObject);
                    });
                connection.execSql(request);
                request.on('done', function(rowCount, more) {
                    console.log(rowCount + ' rows returned');
                    alert("jsonArray2:"+jsonArray);
                    resolve(jsonArray)
                });

            });
    })
}
componentWillMount() {
    this.getZipData().then(function(resolved){
        console.log(resolved);
        alert("data:"+resolved);
    }).catch(function(rejected){
        console.log(rejected);
    })
}

当我添加request.on('done',函数(rowCount,更多))时,我没有得到任何数据

EN

回答 1

Stack Overflow用户

发布于 2015-08-10 09:38:17

在执行查询之前,您似乎调用了解析:

代码语言:javascript
复制
var jsonArray = [];

// Register callback for row event
request.on('row', (columns)=>{
  var rowObject = {};
  columns.forEach((column)=> {
    rowObject[column.metadata.colName] = column.value;
  });

  jsonArray.push(rowObject);
});

// Call resolve before executing request
resolve(jsonArray);

connection.execSql(request);

文档提到一个指示请求已经完成的done事件:

代码语言:javascript
复制
request.on('done', function (rowCount, more, rows) {
  // Call resolve here instead?
  resolve(jsonArray);
});

免责声明:我还没有真正使用沉闷,但是从文档链接来看,这看起来像您要找的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31915423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档