0
Im我的Ionic应用程序(Angular> Angular2)主要使用promises/observables进行迁移时遇到了一些麻烦。使页面上的http.get在Angular2/Ionic的提供者中可观察到
这是我在CartPage方法:
this.cartService.list().subscribe(
data => {
console.log(data);
this.cartData = data.cart;
err => {
console.log(err);
});
而在车商:
list() {
this.storage.get('token')
.then((token) => {
var authHeader = new Headers();
authHeader.append('Authorization', 'Bearer ' + JSON.stringify(token).replace(/['"]+/g, ''));
this.http.get(this.global.getApiUrl()+'cart/list', {
headers: authHeader
})
.map(res => res.json())
.subscribe(
data => {
this.data = data.data;
return this.data;
},
err => {
console.log(err);
}
);
});
}
,但我得到:
打字稿错误 属性“订阅'在类型'void'上不存在。
所以我搜索和搜索,并没有在文档或在例子/教程中找到一个可观察的使用像这样工作。
我不知道我是否缺少声明类型,或者如果我没有使用订阅和使用一些不同的方法。
谢谢!
你应该首先解析你的'this.storage.get('token')',那么你应该返回'this.http.get(...)。map(...)','subscriber'是像承诺的'then',但你必须提供一个'订户',如果不是可观察的将不被执行。 –