Search code examples
node.jsangularjsrxjsnestjs

Module '"rxjs"' has no exported member 'firstValueFrom'


App.service file looks like this:

import { Injectable } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { Observable, firstValueFrom } from 'rxjs';
// import { firstValueFrom } from 'rxjs';

@Injectable()
export class AppService {
  constructor(private httpService: HttpService) {}
  async getWeatherForecasts() {
    const url =
      'http://www.7timer.info/bin/api.pl?lon=113.17&lat=23.09&product=astro&output=json';
    const { data } = await firstValueFrom(this.httpService.get(url));
    return data;
  }
}

Package.json File looks like this:

  "dependencies": {
    "@fmr-pr103625/nest-scaffold": "^1.5.5",
    "@nestjs/apollo": "^10.0.9",
    "@nestjs/axios": "0.0.7",
    "@nestjs/common": "^7.6.18",
    "@nestjs/core": "^7.6.18",
    "@nestjs/graphql": "^10.0.9",
    "@nestjs/platform-express": "^7.6.18",
    "apollo-server-express": "^3.6.7",
    "axios": "^0.27.2",
    "graphql": "^16.3.0",
    "graphql-tools": "^8.2.8",
    "isomorphic-fetch": "^3.0.0",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^5.5.10",
    "rxjs-compat": "^6.6.7",
    "ts-morph": "^14.0.0"
  },

-----------------**********************--------------------------------

I am not able to import firstValueForm from rxjs.

Things i already tried:

  1. to downgrade the version of rxjs from 6.

Solution

  • firstValueFrom introduce in Rxjs 7 as a replacement of toPromise

    RxJS 6.x to 7.x Detailed Change List