我正在使用 Angular 2 和 Electron 制作应用程序,并使用 NeDB 作为数据存储。
搜索服务旨在处理与 DB 的操作,现在我希望它加载整个数据库并返回它。
搜索服务.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;
}
}
在我的组件中,我使用一种方法在使用 ngOnInit 钩子初始化组件时调用服务的 getData() 方法。
但是当我记录结果时,我得到undefined
.
在修补搜索服务时,我发现无法从方法外部访问docs
我find()
的方法,而且似乎result = docs
什么也没做。所以我在想我需要一些异步魔法来完成这项工作。我想用 Observables 做到这一点,但什么也做不了,可能是做错了。