我有以下代码来返回Node.js应用程序中级别DB中的所有键,这是ES6类中的一种方法:
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 data
或on error
从未被解雇吗?我的使用水平是新的,因此将不胜感激。
答案 0 :(得分:0)
这可以解决问题; 我只是意识到我需要等待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);
})
}
}