从Node中的REST POST调用中保存数据

时间:2018-05-18 16:58:52

标签: node.js rest promise

我希望能够将不同的API调用保存到函数中,以便我可以调用这些函数来获取所需的数据。这是我在Node.js中的代码:

"use strict";

var rp = require('request-promise');

function getAccessToken() {
  return new Promise((resolve, reject) => {
    var options = {
        method: 'POST',
        uri: 'some_uri',
        body: {
           "username": "username",
           "password": "password"
        },
        json: true // Automatically stringifies the body to JSON
    };
    rp(options)
        .then(function (parsedBody) {
             resolve(parsedBody.accessToken);
        })
        .catch(function (err) {
             reject(err);
        });
     }
)}

我有什么方法可以将此函数的数据基本保存到变量中?而不是返回一个承诺,我可以返回其他东西并且能够做到

var token = getAccessToken();

console.log(token);

1 个答案:

答案 0 :(得分:0)

request-promise库只返回promise,它根本不需要在rp函数中包含getAccessToken()和Promise。

在以下代码段中,使用init()方法执行所有执行。它是异步功能。它等待getAccessToken()执行并将值赋给变量令牌

"use strict";

var rp = require('request-promise');

function getAccessToken() {
    var options = {
        method: 'POST',
        uri: 'some_uri',
        body: {
           "username": "username",
           "password": "password"
        },
        json: true // Automatically stringifies the body to JSON
    };
    return rp(options);
)

async function init() {
    try {
        var tokenInfo = await getAccessToken();
        console.log(tokenInfo);
    } catch (e) {
        // Console err
    }
}

init();

注意:未经过测试的代码