Angular9 http.get()给出未定义

阿方索·西尔维斯特里(Alfonso Silvestri)

我搜索了有关该论点的更多结果,但没有答案对我有帮助。我试图使用firebase中的网址来做成角度的http.get():https ://firestore.googleapis.com/v1/projects/angularfirebasegb/databases/(default)/documents/cart?key=AIzaSyDNW48hAmvH8eAZpbeflRKb0khY5Blzsqg

您可以尝试,它可以返回json。我尝试了不同的方法,但是结果还是“未定义”。现在,我正在尝试这种模式:

import { Injectable } from '@angular/core';
// install rxjs first: npm install rxjs-compat --save
import { Observable } from 'rxjs/Observable';
import { BookModel } from '../../models/book/book.model';
import { Subject } from 'rxjs/Subject';
import { AngularFirestore } from '@angular/fire/firestore';
//import { AngularFirestore } from 'angularfire2/firestore';
// se non presente: npm install @angular/http@latest
import { Http } from '@angular/http';
//import { HttpClient } from '@angular/common/http'; 
import { map } from 'rxjs/operators';


@Injectable({
  providedIn: 'root'
})
export class CartService {
  private emitAddToCart = new Subject<any>();
  addEmitted$ = this.emitAddToCart.asObservable();
  // http requests (https://firebase.google.com/docs/firestore/use-rest-api) example of httprequest
  hardCodeUrl = 'https://firestore.googleapis.com/v1/projects/angularfirebasegb/databases/(default)/documents/cart?key=AIzaSyDNW48hAmvH8eAZpbeflRKb0khY5Blzsqg';


  constructor(private db: AngularFirestore, private http: Http) { }

    query() {
      // promise
      // take values stored in cart in Firebase
      return this.db.collection('/cart').valueChanges();
    }

  add(data){
    // this is going to put some items into an item collection, storing data in firebase
    let item = this.db.collection<BookModel>('/cart').add(data.getData());
    // next is going to do all the save for us (but the name is a quite strange)
    this.emitAddToCart.next(item);
    return item;
  }

  emitChange(book: BookModel) {
    this.emitAddToCart.next(book);
  }

  httpCall() {
    debugger;
    // return this.http.get(this.hardCodeUrl);
    return this.http.get(this.hardCodeUrl).pipe(map(data => {})).subscribe(result => {
      console.log("RISULTATO " +result);
    });
  }
}

并从另一个类调用service.httpCall(),它显示“ RISULTATO undefined”。在此之前,我尝试过以return this.http.get(this.hardCodeUrl);这种方式调用它:

service.httpCall().subscribe(data => {
  responseFromBackEnd = data;
});

但实际上仍未定义,执行以下操作:

let jsonFromBackend = JSON.parse(responseFromBackEnd.text());

它给我错误原因未定义。我不知道为什么

更新:使用

return this.http.get(this.hardCodeUrl).subscribe(result => {
    console.log("RISULTATO", result);
});

它返回这样的对象:

在此处输入图片说明

和.text()返回空

耶普鲁比奥

您的地图管道.pipe(map(data => {}))使其返回未定义状态:

return this.http.get(this.hardCodeUrl).subscribe(result => {
    console.log("RISULTATO", result);
});

这将返回每个对象。

结果

映射运算符将给定的项目函数应用于由源Observable发出的每个值,并将结果值作为Observable发出。您将获取每个值并返回一个空对象作为结果。

我更喜欢从服务返回Observable:

httpCall() {
   return this.http.get(this.hardCodeUrl);
}

并从需要此值的组件中订阅它:

this.service.httpCall().subscribe((res) => {
   console.log("res", res);
});

而且,如果您需要进行一些转换,您仍然可以在服务器中进行转换并返回可观察到的:

httpCall() {
  return this.http.get(this.hardCodeUrl).pipe(
    map((res: { documents: any }) => {
      return res.documents;
    })
  );
}

这将返回带有原始响应的documents属性值的observable。

结果2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular9 debugElement.classes ['my-class']现在返回未定义

来自分类Dev

从Angular 2模板中未定义从http.get()加载的JSON数据

来自分类Dev

在angular2中未定义http

来自分类Dev

Angular 2.0-注入的Http服务未定义

来自分类Dev

Angular $ http错误响应statusText始终未定义

来自分类Dev

Angular2 Http未定义错误

来自分类Dev

(Angular http $):无法读取未定义的属性“ length”

来自分类Dev

在PHP中未定义Angular $ http发布请求

来自分类Dev

Angular2 Http未定义错误

来自分类Dev

(Angular http $):无法读取未定义的属性“ length”

来自分类Dev

对 json 文件的 Angular http 请求返回未定义

来自分类Dev

我正在尝试从 angular js 中的 http 请求返回一些数据,但它给出了一个未定义的

来自分类Dev

使用来自angular2的node.js的http.get()请求获得未定义的数据?

来自分类Dev

在通过 http.get 调用 API 并接收到正确的 JSON 后,Angular2 类未定义

来自分类Dev

无法在Angular中使用$ http发送POST请求-ReferenceError:未定义$ http

来自分类Dev

<未定义:1 GET http:// localhost:63342 / Twitchtv /未定义404(未找到)>

来自分类Dev

变量$ http未定义

来自分类Dev

$ http的未定义索引。

来自分类Dev

Google Spreadsheet中的HTTP Get,“未定义”

来自分类Dev

AngularJS $ http.get返回未定义

来自分类Dev

$ http.get之后,$ scope对象仍然未定义

来自分类Dev

在 AngularJS 的 .service 中使用 $http 未定义“get”

来自分类Dev

在angular2的自定义Http中未定义注入的Logger

来自分类Dev

$ http.post给出未捕获的TypeError:无法读取angularjs中未定义的属性“ post”

来自分类Dev

Firebase Angular9

来自分类Dev

使用Observable的Angular2 HTTP订阅显示未定义的数据

来自分类Dev

从Angular DataFactory中的HTTP POST请求接收未定义的结果

来自分类Dev

未定义函数:$ http.post(angular.js)中的.succes

来自分类Dev

Angular为什么此HTTP请求响应数组的长度未定义?

Related 相关文章

  1. 1

    Angular9 debugElement.classes ['my-class']现在返回未定义

  2. 2

    从Angular 2模板中未定义从http.get()加载的JSON数据

  3. 3

    在angular2中未定义http

  4. 4

    Angular 2.0-注入的Http服务未定义

  5. 5

    Angular $ http错误响应statusText始终未定义

  6. 6

    Angular2 Http未定义错误

  7. 7

    (Angular http $):无法读取未定义的属性“ length”

  8. 8

    在PHP中未定义Angular $ http发布请求

  9. 9

    Angular2 Http未定义错误

  10. 10

    (Angular http $):无法读取未定义的属性“ length”

  11. 11

    对 json 文件的 Angular http 请求返回未定义

  12. 12

    我正在尝试从 angular js 中的 http 请求返回一些数据,但它给出了一个未定义的

  13. 13

    使用来自angular2的node.js的http.get()请求获得未定义的数据?

  14. 14

    在通过 http.get 调用 API 并接收到正确的 JSON 后,Angular2 类未定义

  15. 15

    无法在Angular中使用$ http发送POST请求-ReferenceError:未定义$ http

  16. 16

    <未定义:1 GET http:// localhost:63342 / Twitchtv /未定义404(未找到)>

  17. 17

    变量$ http未定义

  18. 18

    $ http的未定义索引。

  19. 19

    Google Spreadsheet中的HTTP Get,“未定义”

  20. 20

    AngularJS $ http.get返回未定义

  21. 21

    $ http.get之后,$ scope对象仍然未定义

  22. 22

    在 AngularJS 的 .service 中使用 $http 未定义“get”

  23. 23

    在angular2的自定义Http中未定义注入的Logger

  24. 24

    $ http.post给出未捕获的TypeError:无法读取angularjs中未定义的属性“ post”

  25. 25

    Firebase Angular9

  26. 26

    使用Observable的Angular2 HTTP订阅显示未定义的数据

  27. 27

    从Angular DataFactory中的HTTP POST请求接收未定义的结果

  28. 28

    未定义函数:$ http.post(angular.js)中的.succes

  29. 29

    Angular为什么此HTTP请求响应数组的长度未定义?

热门标签

归档