首页 > 解决方案 > 如何比较来自firebase的两个字符串的总和

问题描述

我正在制作一个计算车辆里程的应用程序,所以我现在正在制作绳索页面,以便用户输入他的维护计划。

我阅读了车辆的里程数和维护计划的里程数,但我收到了这个错误

我无法比较从数据库中读取的两个值的总和(firebase)

图 1:https ://imgur.com/FN3ADDY

图 2:https ://imgur.com/dhSg43N

rappel.service.ts :

constructor(private crudService: RappelService,private cr:VoitureService) { }

  ngOnInit() {
    this.crudService.read_Rappel().subscribe(data => {
      this.cvoiture=localStorage.getItem("idvoiture");
      this.rappels = data.map(e => {
        return {
          id: e.payload.doc.id,
          isEdit: false,
          text: e.payload.doc.data()['text'],
          rappelNom: e.payload.doc.data()['rappelNom'],
          rappelKilo: e.payload.doc.data()['rappelKilo'],
  cvoiture:e.payload.doc.data()['voiture'],
  rappelService:e.payload.doc.data()['rappelService'],
        };
      })
      console.log(this.rappels);
    });
    this.cr.read_Voiture().subscribe(data => {
      this.voitures = data.map(e => {
        return {
          id: e.payload.doc.id,
          isEdit: false,
          text: e.payload.doc.data()['text'],
          mat: e.payload.doc.data()['mat'],
          date: e.payload.doc.data()['date'],
          description: e.payload.doc.data()['description'],
          id_user: e.payload.doc.data()['id_user'],
        kilo: e.payload.doc.data()['kilo']
        };
      } )
      console.log(this.voitures);
      console.log(this.voitures[0].kilo);
      console.log(this.rappels[0].rappelKilo);
      console.log(this.rappels[0].rappelService);
      console.log(this.rappels[0].rappelKilo+this.rappels[0].rappelService)
    });
    if (this.voitures[0].kilo<(this.rappels[0].rappelKilo+this.rappels[0].rappelService)) {
      console.log(this.rappels[0].rappelNom);
    }
  }

我希望voitures[0].kilo与总和进行比较this.rappels[0].rappelKilothis.rappels[0].rappelService并让服务名称出现在控制台中,但我得到错误。

标签: htmlangulartypescriptionic-frameworkionic4

解决方案


我建议您在这种情况下使用forkJoin ..

工作原理的想法forkJoin是,它需要完成输入的可观察对象,并且最终将用于返回由数组表示的可观察对象,该数组由输入可观察对象返回的值组成。

import { forkJoin } from 'rxjs';

ngOnInit() {
  const observableA = this.crudService.read_Rappel();
  const observableB = this.cr.read_Voiture();

  forkJoin(observableA, observableB).subscribe(response => {
    console.log(response);
    // do the rest here
    // this.rappels =
    // this.voitures = 
    // if (this.voitures[0].kilo<(this.rappels[0].rappelKilo+this.rappels[0].rappelService)) {
    // console.log(this.rappels[0].rappelNom);
    // }
  });  
}

推荐阅读