javascript - angular - 订阅使用 http 的服务
问题描述
这是我第一次使用角度和打字稿。
我的服务中有这个功能:
login(email: String, password: String) {
let formData = {
usuario : email,
senha : password,
retsession : true
}
console.log('go');
return from(this.nativeHttp.post<any>(this.env.API_URL+'/login', formData, {'Content-Type': 'application/json'})).pipe(
finalize(() => console.log('ok'))
).subscribe(data => {
console.log('back');
console.log(data);
this.token = "123";
}, err => {
console.log('Native Call error: ', err);
});
}
然后我试图以auth-login.page.ts
这种方式调用它:
onSubmit(f: NgForm) {
this.authService.login(f.value.usuario, f.value.senha).subscribe(
data => {
console.log('login ok');
},
error => {
console.log('eeeerrroowwww');
console.log(error);
},
() => {
this.router.navigateByUrl('/tabs');
}
);
}
所以我收到了这个错误:
auth-login.page.ts(24,60): error TS2551: Property 'subscribe' does not exist on type 'Subscription'.
怎么了?
解决方案
我认为您应该将代码更改为此
return this.nativeHttp.post<any>(this.env.API_URL+'/login', formData, {'Content-Type': 'application/json'})
然后在您的组件中,只需使用您现在拥有的相同代码,那么您应该会很好
onSubmit(f: NgForm) {
this.authService.login(f.value.usuario, f.value.senha).subscribe(
data => {
console.log('login ok');
},
error => {
console.log('eeeerrroowwww');
console.log(error);
},
() => {
this.router.navigateByUrl('/tabs');
}
);
}
推荐阅读
- javascript - 如何使用请求中的 json 对象
- python - 我无法使用 TkinterDnD2 运行 .py 脚本(RuntimeError: Unable to load tkdnd library)
- kendo-ui - 如何以编程方式更改 Angular Kendo UI 网格页面索引?
- python - 如何使用 python 在 QAxObject 中获取指针值?
- java - 如何将字符串列表添加到特定位置的另一个列表?
- java - 如何在 FragmentStateAdapter 中获取片段
- gollum-wiki - gollum-auth,适合新手
- reactjs - 使用 material-ui 以 4k 分辨率居中内容容器
- apache-spark-sql - Spark-Sql 自定义元存储
- flutter - 为什么在颤动中加载 gif 时 ImageStreamListener 不会停止