我设法简单地安装了 traverson 并在 Angular 服务中使用它:
npm install traverson
然后,为您服务:
// imports
const traverson = require('traverson');
@Injectable()
export class Service {
public getData(): Observable<Data> {
const promise: Promise<Counterparty> = new Promise((resolve, reject) => {
traverson
.from('http://my-api.com')
// Add your traverson options here
.follow('link', 'other-link')
.getResource((error, data) => {
if (error) {
reject(error);
} else {
resolve(data);
});
}
return Observable.fromPromise(promise);
}
}
这里的问题是 traverson 还没有最新的类型,所以你有一个混合的 JS/TS 代码。
我没有设法直接使用 observables,这就是我通过 promise 的原因,顺便说一句,这要简单得多。
请注意,traverson 使用自己的 http 客户端。如果你想使用 Angular http 客户端,你需要创建一个桥接类,它实现了以下方法:
get(uri: string, options: any, callback: (err, response) => void);
del(uri: string, options: any, callback: (err, response) => void);
post(uri: string, options: any, callback: (err, response) => void);
put(uri: string, options: any, callback: (err, response) => void);
patch(uri: string, options: any, callback: (err, response) => void);
options 是 traverson 选项。
希望对你有帮助