尝试捕获失败非常简单的尝试

时间:2017-07-30 15:40:05

标签: javascript meteor

我正在努力让API调用正常工作。

在服务器上激活以下代码。

Meteor.methods({
  "gap-api": function() {

  this.unblock();
  var response = Meteor.wrapasync(apiCall)();

  return response;
  }
});
  1. gap-api meteor方法用于获取客户端上的会话变量中的数据。 >这工作
  2. 接下来我想通过meteor方法gap-api从api调用中获取数据。 >这不起作用。
  3. 我得到的错误是内部服务器错误500.所以尝试失败,但我不明白为什么。

    在实现实际的API之前,我首先要让“这是一个尝试返回”字符串工作。

    任何建议?

    由于

    var apiCall = function(callback) {
      try {
    
       var response = "this is a try return";
       callback(null, response);
      } catch (error) {
        // If the API responded with an error message and a payload
        if (error.response) {
          var errorCode = error.response.data.code;
          var errorMessage = error.response.data.message;
          // Otherwise use a generic error message
        } else {
          var errorCode = 500;
          var errorMessage = "Cannot access the API";
        }
        // Create an Error object and return it via callback
        var myError = new Meteor.Error(errorCode, errorMessage);
        callback(myError, null);
      }
    };
    

    我使用此代码作为参考: https://dzone.com/articles/integrating-external-apis-your

1 个答案:

答案 0 :(得分:0)

首先,它应该是Meteor.wrapAsync,而不是Meteor.wrapasync

其次,您的apiCall函数需要callback参数,但您没有任何参数。

您的apiCall函数不应该指望callback参数,它应该只是return或抛出异常。毕竟,你将它包装在同步方法调用中。