0
我正在用Angular 2和Electron制作应用程序,并将NeDB用作数据存储。访问NeDB查找()结果
搜索服务旨在处理数据库操作,现在我希望它加载整个数据库并将其返回。
search.service.ts
import { Injectable } from '@angular/core';
import * as Datastore from 'nedb';
import * as path from 'path';
@Injectable()
export class SearchService {
constructor() { }
getData(){
var db = new Datastore({
filename: path.resolve('src/assets/db.json'),
autoload: true,
});
var result;
db.find({}, function(err, docs) {
result = docs;
});
console.log(result);
return result;
}
}
以我分量I使用一种方法在与ngOnInit钩组件的初始化来调用服务的getData()方法。
但是当我登录结果时,我得到undefined
。
虽然修补与搜索服务,我发现docs
我有find()
方法不能从外部访问的方法,它看起来像result = docs
什么都不做。所以我在想,我需要一些异步魔法来完成这项工作。我想用Observables来做到这一点,但无法做到,可能是做错了。
非常感谢你的清晰和快速的答案!但是我想知道,由于它们的一致性,我是否可以使用可观测量而不是承诺。我想用这个服务在db中进行搜索并提供不同的信息,这样我就会收集到许多信息,这些信息会带来承诺而不是观测值。 –
@IvanBespalov我编辑了我的答案,包括可观察的方法 – Dhyey