Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

325
Visualizações
No capturado (en promesa) TypeError: 'buscar' invocado en un objeto que no implementa la ventana de interfaz

Recibo un error cuando uso fetch pasado al constructor en una clase de javascript:

 import { browser } from '$app/env'; class Api { constructor(fetch) { this.req = fetch; } async api(path, body = {}, opts = {}) { path = import.meta.env.VITE_API_ENDPOINT + path; body = JSON.stringify(body); const method = opts.method || 'GET'; const headers = {}; if (browser) { const token = localStorage.getItem('token'); headers.Authorization = token ? 'Bearer ' + token : ''; } const res = await this.req(path, { method: opts.method || 'GET', body: method === 'GET' ? null : body, headers }); if (res.ok) { return await (opts.raw ? res.text() : res.json()); } throw res; } } export default Api;
 import Api from './create-api'; class Jobs extends Api { constructor(fetch) { super(fetch); } async getAll() { return await this.api('/jobs'); } } export default Jobs;

Utilizándolo en un kit esbelto con await new Jobs(fetch).getAll()

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Nunca he visto este error específico, pero esto es lo que creo que está sucediendo:

Cuando invoca un método en un objeto en javascript, el alcance dentro de ese método (a lo this apunta) está vinculado al objeto.

Debido a que está invocando fetch como método en su instancia de Api , es probable que this apunte a la instancia en lugar de a la window .

Algo en la implementación de fetch espera this sea una instancia de Window, de ahí el error.

Creo que podrías resolver esto ya sea:

  1. convirtiéndolo en una función de flecha que solo pasa los argumentos para buscar:
 this.req = (...args) => fetch(...args)

o 2) vincular explícitamente fetch a window (o global o lo que sea):

 await new Jobs(fetch.bind(window)).getAll()
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda