永远不会在 createKeyStream 级别触发 on `data` 或 `error`

The on `data` or `error` is never fired on createKeyStream level

我有以下代码 return Node.js 应用程序中关卡数据库中的所有键,这是 ES6 class 中的一个方法:

   class LevelDB {

        constructor() {
            this.db = level(chainDB);
        }

        getAllItems() {
            let self = this;
            return new Promise(function(resolve, reject){
               self.db.createKeyStream()
                 .on('data', function (data) {
                    resolve(data);
                 })
                 .on('error', function (err) {
                    reject(err)
              });
          }
   }

数据库创建成功。 我注意到 on dataon error 从未被触发?我是新用户,所以任何帮助将不胜感激。

这解决了问题; 我刚刚意识到我需要等待 Stream 关​​闭:

class LevelDB {

        constructor() {
            this.db = level(chainDB);
        }

        getAllItems() {
            let self = this;
            let dataArray = [];
            return new Promise(function(resolve, reject){
             self.db.createKeyStream()
               .on('data', function (data) {
                  dataArray.push(data);
                })
               .on('error', function (err) {
                  reject(err)
                })
               .on('close', function () {
                  resolve(dataArray);
                })
           }
       }