[英]NodeJS, how to return value from request call to main function?
I have the following code written.我编写了以下代码。 How do I return
html
from the request
block when data is available into main viewPage
function?当数据可用于主
viewPage
页面 function 时,如何从request
块返回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
}
It returns empty/null when I call result = viewPage(URL)
because data has not arrived yet.当我调用
result = viewPage(URL)
时它返回空/null,因为数据尚未到达。
API request call is async, you are not waiting for that to finish. 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);
}
Similar result using Axios.使用 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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.