永远不会在 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 data
或 on 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);
})
}
}
我有以下代码 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 data
或 on 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);
})
}
}