web-dev-qa-db-ja.com

次に、関数promiseエラーではありません

私はpromiseを初めて使用し、bluebirdのドキュメントを使用して非同期コードからデータを取得します

私が試したのは次のとおりです。

エラーは次のとおりです。

getToken.thenは関数ではありません

どうすればそれを回避できますか?

このファイルconnection.js

return connection.getToken.then(function(connToken){

   console.log(connToken);

}).catch({


})

これはmoduleBのgetTokenのコードです

const request = require("request-promise");
const Promise = require("bluebird");
module.exports = {


    getToken: function () {


        return new Promise((resolve, reject) => {
            let options = {
                method: 'POST',
                url: 'https://authentication.arc.com/oauth/token',
                headers: {
                    grant_type: 'client_credentials',
                    authorization: 'Q0MDdmMCFiMTc0fGNvlQVRDWThDNDFsdkhibGNTbz0=',
                    accept: 'application/json;charset=utf-8',
                    'content-type': 'application/x-www-form-urlencoded'
                },
                form: {
                    grant_type: 'client_credentials',
                    token_format: 'opaque&response_type=token'
                }
            };


            request(options)
                .then(function (body) {

                    return body;
                })
                .catch(function (err) {
                    return err;          
                });
        })

    }
}
3
Jenny Hilton

実際に関数を呼び出す必要があります。

connection.js

return connection.getToken() // note the parentheses ()
  .then(function(connToken){
    console.log(connToken);
  })
  .catch(function(error){
    console.error(error);
  });
9
Aron