【问题标题】:How to Return a Promise from a Unirest PUT Request如何从 Unirest PUT 请求中返回 Promise
【发布时间】:2017-09-21 20:34:15
【问题描述】:

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

当我尝试运行时,我收到以下错误: 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);
});

模块.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)
        }
      })
  });
};

【问题讨论】:

    标签: javascript node.js promise unirest


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 2015-02-06
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      相关资源
      最近更新 更多