从回调返回对象

时间:2020-01-15 19:53:56

标签: javascript node.js api callback npm-request

我想从回调中返回一个对象。当我运行以下代码时,body对象的日志看起来像预期的那样。它似乎是正确的JSON对象,其中包含我想要来自服务器的响应:名称,电子邮件,网站等。

但是result对象似乎包含有关请求本身的信息,而不是响应对象。

如何返回body对象,以便可以从result变量访问它?

const request = require('request'); // npm i request -s

module.exports = async config => {
  ...

  const result = await request.get( url, options,
    ( error, response, body, ) => {
      console.log( 'body', body, ); // I want the other log to look like this log.
      return body;
    }
  );

  console.log( 'result', result, ); // I want this log to look like the above log.
  // In other words, I want the below line to be the name, email, website JSON object
  // contained in the body
  return result;
}

这就是我要从result中获得的东西。 console.log('body',body,);

body {
  "name": "foo",
  "email": "foo@example.com",
  "website": "www.example.com",
  ...
}

这实际上是我从result那里得到的。

console.log('result',result,);
result Request {
  _events: [Object: null prototype] {
    error: [Function: bound ],
    complete: [Function: bound ],
    pipe: [Function]
  },
  _eventsCount: 3,
  _maxListeners: undefined,
  uri: Url {
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'api.example.com',
    port: 443,
    hostname: 'api.example.com',
    hash: null,
  },
  callback: [Function],
  method: 'GET',
  readable: true,
  writable: true,
  explicitMethod: true,
  _qs: Querystring {
    request: [Circular],
    lib: { formats: [Object], parse: [Function], stringify: [Function] },
    useQuerystring: undefined,
    parseOptions: {},
    stringifyOptions: {}
  },
  _auth: Auth {
    request: [Circular],

0 个答案:

没有答案