2016-05-25 1 views
0

郵便配達員にエラーが表示されます。TypeError:ClientPromise.thenは関数ではありません。ここでノード内の他の場所で再利用する約束をエクスポートする方法

*auth.js* 

const Client = require("@x/nr"); 

module.exports = { 
    ClientPromise: function(options) { 
    return Client.authenticate(options); <--- (this returns a promise) 
    } 
} 

私は私はこのような一つのファイルにそれのすべてを持っている場合、それが動作auth.js

*API.js* 
var ClientPromise = require('../config/auth').ClientPromise 

module.exports = { 
    findOneClientProblem: function(req, res) { 
    ClientPromise.then(function (client) { 
     const Problem = client.Problem; 
     return Problem.findOne(req.params.radarProblemID) 
    }).then(function (result){ 
     return res.json(result) 
    }); 
    } 
} 

からの約束を呼び出すしたいところです。

const Client = require("@x/nr"); 

const ClientPromise = Client.authenticate(options); <--- (this returns a promise) 

module.exports = { 
    findOneClientProblem: function(req, res) { 
    ClientPromise.then(function (client) { 
     const Problem = client.Problem; 
     return Problem.findOne(req.params.radarProblemID) 
    }).then(function (result){ 
     return res.json(result) 
    }); 
    } 
} 
+0

は、最初の例では(関数を呼び出します - 'ClientPromise行います。機能(オプション){。 ...}() 'あなたが約束を共有したい場合 –

答えて

2

API.jsでは、実際にはClientPromise()関数を呼び出す必要があります。関数への参照を取得しているに過ぎませんが、実際に呼び出しているわけではないので、約束はありません。

変数ClientPromiseには、関数自体への参照が含まれています。その機能を実行するには、あなたはそれを呼び出す必要があります:

ClientPromise(options).then(...) 

ここコンテキストでその変更されています

// *API.js* 
var ClientPromise = require('../config/auth').ClientPromise 

module.exports = { 
    findOneClientProblem: function(req, res) { 
    ClientPromise(/* put options here */).then(function (client) { 
     const Problem = client.Problem; 
     return Problem.findOne(req.params.radarProblemID) 
    }).then(function (result){ 
     return res.json(result) 
    }); 
    } 
} 
+1

@DavidTrinh - これはあなたの質問に答えましたか? – jfriend00

関連する問題