2017-04-25 5 views
2

私はプロミスを返す関数を作成しようとしているので、一緒にチェーンされ、他のいくつかの関数と統合できます。一意でないPUTリクエストからプロミスを返す方法

私が実行しようとすると、私は次のエラーを取得: TypeError: Cannot read property 'then' of undefined

は私が.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) 
     } 
     }) 
    }); 
}; 

答えて

3

あなたの関数の根は約束を返すものでなければなりません。

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) 
     } 
     }) 
    }); 
} 
関連する問題