当前位置:  开发笔记 > 编程语言 > 正文

创建一个同步的http.get()

如何解决《创建一个同步的http.get()》经验,为你挑选了1个好方法。

我试图通过promises和http.get处理登录,但我失败了,我得到以下错误:

对象不支持属性或方法'toPromise'

我的代码是:

return this.http.get('http://localhost:5000/login/', {
  headers: authHeader
}).map((response) => {
  return response.json()
}).toPromise(null);

我得到了:

https://github.com/johnpapa/angular2-there-and-back-again/blob/master/src/app/core/character.service.ts

更新:

JohnPapa将他的项目更新为我的朋友

https://github.com/johnpapa/angular2-there-and-back-again/blob/master/app/core/character.service.ts



1> Thierry Temp..:

我想知道你是否真的使用了promise,因为Angular的HTTP支持依赖于Observables.

要获得响应,您只需要为您的调用返回observable:

getSomething() {
  return this.http.get('http://localhost:5000/login/', {
    headers: authHeader
  }).map((response) => {
    return response.json()
  })
}

调用该方法时,您可以使用以下subscribe方法注册回调:

getSomething().subscribe(
  data => handleData(data),
  err => reject(err));

如果你真的想使用promises(使用toPromise方法),你应该导入:

import 'rxjs/Rx';

有关更多详细信息,请参阅此问题:https://github.com/angular/angular/issues/5632#issuecomment-167026172.

否则,FYI调用与浏览器中的HTTP不同步...

希望它对你有帮助,蒂埃里

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有