使用节点 "request" 库从回调中获取数据
getting data from callbacks using node "request" library
我正在努力研究如何从此代码示例中获取 return 数据。如果我尝试从回调函数中获取证书数据,它总是空的。我在这里缺少什么吗?
var Request = require('request');
function callhttp(host) {
var cert = " ";
var options = {
url: 'https://' + host
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var cert = response.connection.getPeerCertificate();
}
}
Request(options, callback);
return cert
}
console.log(callhttp("www.google.com"));
此致。
通过返回 'cert',您将此操作称为同步操作,而事实并非如此。
正确的模式是传递一个回调函数并处理写入的数据:
var Request = require('request');
function callhttp(host, cb) {
var cert = " ";
var options = {
url: 'https://' + host
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var cert = response.connection.getPeerCertificate();
cb(cert);
}
}
Request(options, callback);
}
callhttp("www.google.com", function(_cert) {
console.log(_cert);
});
我正在努力研究如何从此代码示例中获取 return 数据。如果我尝试从回调函数中获取证书数据,它总是空的。我在这里缺少什么吗?
var Request = require('request');
function callhttp(host) {
var cert = " ";
var options = {
url: 'https://' + host
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var cert = response.connection.getPeerCertificate();
}
}
Request(options, callback);
return cert
}
console.log(callhttp("www.google.com"));
此致。
通过返回 'cert',您将此操作称为同步操作,而事实并非如此。
正确的模式是传递一个回调函数并处理写入的数据:
var Request = require('request');
function callhttp(host, cb) {
var cert = " ";
var options = {
url: 'https://' + host
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var cert = response.connection.getPeerCertificate();
cb(cert);
}
}
Request(options, callback);
}
callhttp("www.google.com", function(_cert) {
console.log(_cert);
});