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);
}
我写了下面的代码。当数据可用于主 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);
}