check - Sintaxis Meteor wrapAsync
meteor server (1)
¿Cómo uso Meteor wrapAsync ?
Debajo está lo que intento hacer
if (tempTreatment.groupId === undefined) {
// create new group
Meteor.wrapAsync(Meteor.call(''createTreatmentGroup'', salon, tempTreatment.groupName, tempTreatment.groupName));
// get group id
var getGroup = Meteor.wrapAsync(Meteor.call(''getTreatmentGroup'', salon, tempTreatment.groupName));
console.log(getGroup);
tempTreatment.groupId = getGroup._id;
}
Quiero ejecutar estas dos funciones de Meteor.call
manera sincronizada, pero no estoy undefined
en console.log(getGroup);
que Shuold simplemente devuelve un objeto.
Meteor.wrapAsync
es una API del lado del servidor diseñada para envolver las funciones asíncronas de Node.js que requieren una devolución de llamada como último argumento, para que aparezcan sincrónicas mediante el uso de Future
s, una sub biblioteca de Fibres. (más sobre esto aquí: https://www.discovermeteor.com/blog/wrapping-npm-packages/ )
No está destinado a ser utilizado por el lado del cliente para convertir Meteor.call
asíncrono en una llamada síncrona porque en el navegador, las llamadas de invocación de método remoto son SIEMPRE asíncronas.
Para resumir, simplemente no puede lograr lo que está tratando de hacer, tiene que usar devoluciones de llamada y anidar su segunda llamada al método dentro de la devolución de llamada exitosa de su primera llamada al método.