Meteor wrapAsync语法

时间:2014-09-26 11:10:38

标签: meteor synchronous

如何使用Meteor wrapAsync

以下是我要做的事情

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;
}

我希望同步运行这两个Meteor.call函数,但我在undefined上得到console.log(getGroup);,这只会返回一个对象。

1 个答案:

答案 0 :(得分:7)

Meteor.wrapAsync是一个服务器端API,旨在包含需要回调作为最后一个参数的Node.js异步函数,通过使用Future s,一个Fibers子库使它们看起来是同步的。 (更多相关内容:https://www.discovermeteor.com/blog/wrapping-npm-packages/

不打算在客户端将异步Meteor.call转换为同步调用,因为在浏览器上,Remote Method Invokation调用总是异步的。

长话短说,你根本无法实现你想要做的事情,你必须使用回调并在第一个方法调用的成功回调中嵌套你的第二个方法调用。