Meteor.methods({ 'getData'(id) { const syncGetData = Meteor.wrapAsync(legacyLibrary.getData); return syncGetData(id); } });
Wrap the function once outside the method to avoid re-wrapping on every call. meteor wrapasync
wrapasync is a Meteor package that provides a simple way to handle asynchronous code in Meteor applications. Here's a review of the package: Meteor
If you're still using Meteor.wrapAsync , you're writing legacy code (but it works!). Here's the modern take: meteor wrapasync
No more callback hell in Meteor 🚀
But remember: in Meteor 3, just use fs.promises.readFile with await . Progress! ⚡
In Meteor, many APIs are designed to work synchronously, but modern JavaScript often uses asynchronous code (e.g., promises, async/await). wrapasync bridges this gap by converting asynchronous functions into synchronous ones that Meteor can understand.