如何将新的Promise对象从后端服务文件返回到后端控制器



我正在尝试在后端服务文件中连接到反复的API,然后返回作为后端控制器的新承诺。由于某种原因,我的代码行不通。

我不断收到此错误消息:

0 |帐户 - |TypeError [ERR_INVALID_ARG_TYPE]:第一个参数必须是类型字符串,缓冲区,ArrayBuffer,Array或类似数组的对象之一。收到的类型不确定

这是我的代码,API配置和其他设置效果很好。请记住,这是项目代码的一部分。

service.js:

const Recurly = require('recurly-js');
function TeamService({}) {
    this.updateBillingInfo = (team_id, body) => {
    const recurly = new Recurly(
      {
        API_KEY: config.recurly.API_KEY,
        SUBDOMIAN: config.recurly.SUBDOMIAN,
        ENVIRONMENT: config.recurly.ENVIRONMENT,
        DEBUG: config.recurly.DEBUG,
        API_VERSION: config.recurly.API_VERSION
      }
    );
    return new Promise((resolve, reject) => {
      let res;
      let err;
      recurly.billingInfo.update(team_id, { token_id: body.id }, function (errResponse, response) {
        if (errResponse) {
          err = errResponse.data.error;
        }
        if(response){
          res = response;
        }
      });
      resolve(res);
      reject(err);
    });
  };
}
}

Controller.js:

function Controller({ teamService, httpStatus, }) {
this.updateBillingInfo = (req, res) => {
    const {
      team_id,
      body
    } = req;
    teamService.updateBillingInfo(team_id, body).then(function(result){
      console.log(result);
      return httpStatus.twoHundredSuccess(res, {result});
    }).catch(function(err){
      console.log(err);
      httpStatus.fiveHundredError(res, err);
    });
  }
}

我希望服务工作中的功能从API获得信息。返回作为控制器文件的新承诺。但是它无法使用服务。我对承诺不是很好。请让我知道我做错了哪一部分。

您的决心和拒绝应在异步函数的回调中:

recurly.billingInfo.update(team_id, { token_id: body.id }, function(
    errResponse,
    response
  ) {
    if (errResponse) {
      reject(errResponse.data.error);
    }else{
      resolve(response);
    }
  });

相关内容

  • 没有找到相关文章

最新更新