【发布时间】:2021-05-21 16:47:44
【问题描述】:
我从 rxjs 库开始,尝试向 API REST 发出请求。我遇到的问题是subscribe 中的代码被执行了两次,但只被调用了一次
observable 方法从promise 创建一个observable
post(url, body): Observable<Response> {
return from(fetch(url, {
method: 'POST',
body: JSON.stringify(body),
headers: {
'Accept': 'application/json, text/plain',
'Content-Type': 'application/json;charset=UTF-8'
}
}))
}
然后,我用来读取流值的代码是:(我已经检查过,它只被调用一次)
doLogin(){
var creds={
"email":"user@gmail.com",
"password":"user"
}
var stream$ =this.httpService.post("http://localhost:8080/api/login",creds)
stream$.subscribe(x=>console.log(x))
}
我在导航器控制台中看到的结果是 2 console.log() 以及获取响应的结果
【问题讨论】:
-
你可以在
var stream$之后加上一个console.log,这样你就知道你的doLogin是否被调用了两次。 -
我搞定了,方法
doLogin只执行一次
标签: reactjs rxjs observable reactive-programming reactive