如何 Return 来自 Unirest PUT 请求的 Promise

How to Return a Promise from a Unirest PUT Request

我正在尝试创建一个 returns 承诺的函数,以便它可以链接在一起并与其他一些函数集成。

当我尝试 运行 时,出现以下错误: TypeError: Cannot read property 'then' of undefined

我可以将 promise 放在 .end 中还是需要将其包裹在整个函数体中?这样能正确处理错误吗?

index.js

const module = require('./module');

var test = {
  name: "Full Name"
};

module.update(test).then((response) => {
  console.log(response);
});

module.js

const unirest = require('unirest');

module.exports = {

update: function({name}) {
  unirest.put(someURL)
    .headers({
      'Content-Type': 'application/json'
    })
    .send({
      name: name
    })
    .end(function (response) {
      return new Promise((resolve, reject) => {
        if(response) {
          resolve(response)
        }
        if(error){
          reject(response)
        }
      })
  });
};

你的函数的根应该是返回承诺的那个。

update: function(name) {
  return new Promise((resolve, reject) => {
    unirest.put(someURL)
      .headers({
        'Content-Type': 'application/json'
      })
      .send({
        name: name
      })
      .end(function (response) {
        if(response) {
          resolve(response)
        }
        if(error){
          reject(response)
        }
      })
  });
}