NodeJS,如何从请求调用到主函数的 return 值?

NodeJS, how to return value from request call to main function?

我写了下面的代码。当数据可用于主 viewPage 函数时,如何从 request 块 return html

const request = require('request');

let viewPage = (url) => {
    request({url:url,headers:headers,method:'GET'},(error,response,html) => {
        let stockStatus = null;
        if(!error && response.statusCode == 200) {
           //...return html variable from here
        } else {

        }
      });

      return html
}

它 returns empty/null 当我调用 result = viewPage(URL) 因为数据还没有到达。

API 请求调用是异步的,您不会等待它完成。

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

let viewPage = (url) => {
  return rp({ uri: url, headers: headers, method: "GET" })
    .then(function (html) {
      // Do something or check
      return html;
    })
    .catch(function (err) {
      console.log(err);
      return err;
    });
};

async function some() {
  var result = await viewPage(URL);
}

使用 Axios 的结果相似。

const axios = require('axios').default;

async function viewPage(url, headers = {}) {
    const response = await axios({
        method: 'get',
        url: url,
        headers: headers
    });
    return response?.data;
}

async function run() {
    const pageData = await viewPage("URL");
    return console.log(pageData);
}