2
为了使用角度2和rxjs,我遇到了问题。了解角度和HTTP的rxjs
我试着做一个基本的登录:这里是代码:
class LoginPage{
ctor(private auth:AuthService) {}
login(cred) {
this.auth.login(cred).subscribe(res=> this.navigateToHome()
}
}
class AuthService {
ctor(private http:AuthHttp) {}
login(cred){
return this.http.post(url, cred).subscribe(res => this.onLoginSuccess())
}
}
class AuthHttp extends Http {
ctor (.....)
post(...) {
// Add some headers
return super.post(..)
}
}
现在首先是不会工作的,因为在AuthService
的login
现在返回Subscription
对象,而不是一个Observable
,在addtional如果拿在login
功能和重构它这样:
login(cred) {
var obs = this.http.post(url, cred)
obs.subscribe(res=> this.onLoginSuccess())
retrun obs
}
这会导致HTTP请求来调用两次..
所以我的问题是:我怎么知道我的loginPage
调用onLoginSuccess
的用户完成了?
我该如何避免2次请求?
请分享一些更多详情?这和'do'有什么区别? – tubu13