Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

104
Vistas
¿Por qué mi función en el servidor devuelve verdadero pero devuelve falso en el lado del cliente en Meteor.js?

Tengo la función hasCompleted que devuelve true o false , que está en el archivo del servidor:

 Smaples.helpers({ hasCompleted(userId) { // … switch (this.frequency) { case Frequency.ONE_TIME:{ return measures.fetch().every(measure => { console.log( 'measure.hasCompleted(userId)', // true measure.hasCompleted(userId), ); measure.hasCompleted(userId); }); } } // … }, })

Pero cuando se trata del lado del cliente, la función anterior devuelve false .

En el lado del cliente usando useTracker :

 const hasCompleted = useTracker( () => sample.hasCompleted(Meteor.myFunctions.getCurrentUserId()), ); console.log( 'survey.hasCompleted(Meteor.myFunctions.getCurrentUserId())', // false survey.hasCompleted(Meteor.myFunctions.getCurrentUserId()), ); console.log('hasCompleted', hasCompleted); // false

La forma en que accedo a los ayudantes desde el lado del cliente, ¿está mal?

intentos

dentro hasCompleted , devuelvo manualmente true y la consola muestra true :

 Smaples.helpers({ hasCompleted(userId) { // … switch (this.frequency) { case Frequency.ONE_TIME:{ return true; // changed } // … }, })

Además, pensé que si

 console.log(measure.hasCompleted(userId))

después de regresar se podría cambiar, pero

 console.log(measure.hasCompleted(userId))

todavía devuelve true :

 Smaples.helpers({ hasCompleted(userId) { // … switch (this.frequency) { case Frequency.ONE_TIME:{ return measures.fetch().every(measure => { measure.hasCompleted(userId); console.log( 'measure.hasCompleted(userId)', // true measure.hasCompleted(userId), ); }); } } // … }, })

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es muy probable que solo pierda un return en la devolución de llamada de su llamada de blocks.every measures.every() :

Array.prototype.every doc :

true si la función callbackFn devuelve un valor verdadero para cada elemento de la matriz. De lo contrario, false .

 Smaples.helpers({ hasCompleted(userId) { // … switch (this.frequency) { case Frequency.ONE_TIME:{ return measures.fetch().every(measure => { console.log( 'measure.hasCompleted(userId)', // true measure.hasCompleted(userId), ); // Make sure to return a truthy value if the item passes your condition return measure.hasCompleted(userId); }); } } // … }, })

Nota: en caso de que su matriz esté vacía (sin documentos), every siempre devuelve true ; ten cuidado si esto no es lo que quieres.

No estoy seguro acerca de su parte del servidor ya que no hay información al respecto.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda