Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

100
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!