如何在变量中获取响应而不是节点js中的回调

时间:2019-07-06 10:32:08

标签: node.js callback request

我需要使用发送正文数据调用外部api并进行重新处理。

我尝试:

var data = {};
data['data'] = {};
data['data']['access_token'] = '123456';
data['data']['secret_key'] = '456897';
data['data']['pincode'] = '457821';

var options = {
    "headers": { "content-type": "application/json" },
    "url": "http://example.com/api.php",
    "body": JSON.stringify(data)
};

const getChuckNorrisFact = util.promisify(Request);
getChuckNorrisFact(options).then(data => {
    let content = JSON.parse(data.body);
    console.log('Joke: ', data.body);   
}).catch(err => console.log('error: ', err))

console.log(getChuckNorrisFact);

我想在getChuckNorrisFact变量中得到响应。

1 个答案:

答案 0 :(得分:-1)

尝试以下代码:

var data = {};
data['data'] = {};
data['data']['access_token'] = '123456';
data['data']['secret_key'] = '456897';
data['data']['pincode'] = '457821';

var options = {
    "headers": { "content-type": "application/json" },
    "url": "http://example.com/api.php",
    "body": JSON.stringify(data)
};

const request = util.promisify(Request);
request(options).then(data => {
    let getChuckNorrisFact = JSON.parse(data.body);
    console.log(getChuckNorrisFact);
}).catch(err => console.log('error: ', err))

或者您可以直接使用:https://www.npmjs.com/package/request-promise

而不是将请求模块转换为Promise。

ps:我没有尝试过代码,因此可能需要进行一些修改。 希望这会有所帮助:)