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

529
Visualizações
Desafío de libros de Javascript

Traté de completar una evaluación de javascript para una entrevista de trabajo pero fallé

Mi plan era procesar el objeto de usuario dentro de la función findPotentialLikes, pero siempre se mostrará indefinido.

Está hecho utilizando el marco de prueba y las promesas de Mocha y Chai.

Básicamente, mi pregunta es: ¿cómo obtengo al usuario en la promesa findPotentialLikes?

 class SocialNetworkQueries { constructor({ fetchCurrentUser }) { this.fetchCurrentUser = fetchCurrentUser; } findPotentialLikes({ minimalScore } = { }) { console.log(this.fetchCurentUser); // I tried here to get the user in order to process the findPotentialLikes function with no luck return Promise.resolve(); } } describe('SocialNetworkQueries', () => { describe("example from README", () => { it("should find potential likes", async () => { // given const user = { id: "mrouk3", likes: { books: ["Moby Dick", "Ulysses"], }, friends: [{ id: "YazL", likes: { books: ["Ulysses", "War and Peace"], } }], }; // when const potentialLikes = await new SocialNetworkQueries({ fetchCurrentUser: () => Promise.resolve(user), }).findPotentialLikes({ minimalScore: 0.3 }); // then expect(potentialLikes).toEqual({ books: [ "The Great Gatsby", "Don Quixote", "War and Peace", ], }); }); }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Dado que la prueba proporciona el argumento fetchCurrentUser como una función que devuelve una promesa que se resuelve en un valor de usuario, deberá recuperar el valor resuelto de la promesa, ya sea a través de async/await:

 class SocialNetworkQueries { constructor({ fetchCurrentUser }) { this.fetchCurrentUser = fetchCurrentUser; } async findPotentialLikes({ minimalScore } = { }) { const user = await this.fetchCurrentUser(); // ... return { books: [ "The Great Gatsby", "Don Quixote", "War and Peace", ] }; } }

o lógica en una devolución de llamada .then() que se ejecutará después de que el usuario haya resuelto:

 class SocialNetworkQueries { constructor({ fetchCurrentUser }) { this.fetchCurrentUser = fetchCurrentUser; } findPotentialLikes({ minimalScore } = { }) { return this.fetchCurrentUser().then( user => { // ... return { books: [ "The Great Gatsby", "Don Quixote", "War and Peace", ] }; } ); } }

Cualquiera de los enfoques es funcionalmente equivalente y da como resultado findPotentialLikes() devuelva una Promesa que se resuelve con el valor afirmado de la prueba.

about 4 years ago · Juan Pablo Isaza 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