javascript - Meteor 方法调用 - 等待方法完成

标签 javascript node.js meteor

我真的在为 Meteor 回调而苦苦挣扎。我有一个对服务器端方法的客户端调用,但是当回调从服务器返回时,我得到了一个未定义的结果。据我所知,这是因为服务器尚未完成 POST,但已经在发送回调。我是 Meteor 的新手,这似乎真的很难。到目前为止我所拥有的:

客户:

Meteor.call("createCustomer", city, fname, lname, email, function(error, result) {
  if (error) {
    console.log("error: " + error);
  } else {
    console.log("result: " + result)
  }
});

服务器:

Meteor.methods({
  'createCustomer': function(city, fname, lname, email) {
    HTTP.call("POST", url+'/customer?api_key='+process.env.API_TOKEN ,{
      data: {
        city: city,
        first_name: fnam,
        last_name: lname,
        email: email
      }
    }, function (error, result) {
      if (error) {
        return 'error';
      } else {
        return'success';
      }
    });
  }
});

我可能正在做一些非常愚蠢的事情,或者它可能比我预期的要复杂,但任何帮助都会大有帮助!

最佳答案

这就是 Meteor.wrapAsync 的用途。它创建异步函数的同步版本。试试这个:

'createCustomer': function(city, fname, lname, email) {
  var call = Meteor.wrapAsync(HTTP.call, HTTP);
  return call("POST", url+'/customer?api_key='+process.env.API_TOKEN ,{
    data: {
      city: city,
      first_name: fname,
      last_name: lname,
      email: email
    }
  });
}

关于javascript - Meteor 方法调用 - 等待方法完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665497/

相关文章:

node.js - Twilio 消息未在 cronamba 上触发

javascript - 如何使用熨斗:router to create a separate link for each item in collection

javascript - 在 Meteor 中控制用户访问

javascript - 每天限制 meteor 投票一次

javascript - 如何使用返回http promise的angular 2服务

javascript - 使用单选按钮组合显示 HTML 元素的逻辑

javascript - 如何减少这段 JS 代码的行数,使其更短、更高效?

javascript - 如何将值从 Controller 传递给指令

javascript - 快速路由为每个请求的文件响应index.html

javascript - VS2022 相当于 "Azure Identity Plugin for Visual Studio Code Authentication"是什么?