###前提・実現したいこと
node.jsを使って、APIをPostする関数を作って、返り値を呼び出せるようにしたい。(下記の1〜3を実現したい)です。
- 認証用URLにidとpasswordをPostしてtokenを取得する
- 取得したtokenを使ってAPIにPostして結果(json)を取得する
- 結果を返却する
- 結果からtokenを取得して、次のRequestにPostする
###該当のソースコード
var request = require('superagent'); var login_url = "https://xxx/service/v2/webapi/login"; var login_id="XXX" var password="YYY" function getAuth(login_url, login_id, password) { return new Promise(function(resolve, reject) { request .post(login_url) .set('X-HEADER-A', 'a') .set('X-HEADER-B', 'b') .type('form') .send({login_id: login_id, password: password}) .end(function(err, res){ if (err) { reject(err); return; } resolve(res); }); }); } function onFulfilledAuth(res) { var resj = JSON.parse(res.text); access_token = resj['result']["access_token"]; // console.log("access_token: " + access_token); return {access_token: access_token}; } function onRejeted(err) { console.log(err); } var auth = getAuth(login_url, login_id, password).then(onFulfilledAuth, onRejeted); console.log(auth)
コメントアウトしたonFulfilledAuth(res)ないのconsole.logでは値が表示されるのですが、実行すると
Promise { <pending> }
が表示されてしまいます。
どのように修正すれば次の関数に引き渡せる形にできますか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/03 00:43