Tengo un servicio en Angular que devuelve una matriz de Cualquier tipo
import { Injectable } from '@angular/core'; import axios from "axios"; @Injectable({ providedIn: 'root' }) export class BooksService { private books:any[] = []; constructor() { this.books = this.getData() } getData() { axios.get(`https://localhost:3000/api/get`) .then(data => { return data; }) .catch(error => { return error; }) } getBooks():any[] { return this.books; } getBook(idx:number):any { return this.books[idx] } }entonces cuando en mi componente llamo a la función 'getBooks' obtengo lo siguiente
ingrese la descripción de la imagen aquí
que funciona bien, pero cuando llamo a la función 'getBook()'
console.log(this._booksService.getBook(1))Devuelve 'indefinido', ¿alguien sabe por qué?
Creo que es porque la función console.log no está 'esperando' a que se complete la solicitud de obtención. Debe llamar a la función getBook en el constructor, o de todos modos antes de llamar a console.log.