Nodejs如何在没有settimeout的情况下访问回调结果
Nodejs how to access Callback results outsite without setTimeouts?
我是nodejs和javascript的新手。我正在学习异步编程。我正试图找到一个域名的ip地址。我正在使用nodejs内置"DNS"库。
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
res.send(err);
} else {
console.log(addresses);
var domainAddress = addresses;
}
});
这是实际代码。我正试图从回调中获得域名地址。由于它的异步编程,它需要时间来获得domainAddress和我无法访问它一段时间。
如果我使用这样的代码,我可以访问domainAddress
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
res.send(err);
} else {
domainAddress = addresses;
}
});
setTimeout(function() {
console.log(domainAddress);
}, 1000);
但是我不认为这是导出回调结果到主程序的正确方法。
你能给出这个问题的其他解决方案吗?
注意:我想做额外的任务一旦我得到IP。我想根据ip地址找到地理位置。为此,我需要将此IP传递给一个称为Geoip-lite的单独模块。但是由于我无法在外部获取地址,这变得非常困难
function myResolve(domainName, callback){
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
return callback(err);
} else {
return callback(null, addresses);
}
});
}
myResolve(domainName, function(err, addresses){
if(err){
return res.send(err);
} else {
return res.send(addresses);
}
});
尝试node.js async模块。你可以使用async series。
var domainAddress;
function findDNS(callback){
dns.resolve(domainName, function onLookup(err, addresses, family) {
if (err){
res.send(err);
} else {
console.log(addresses);
domainAddress = addresses;
callback(null,"Address found")
}
});
}
function doWhatever(callback){
console.log("DNS:"+domainAddress);
callback(null,"OK");
}
async.series([findDNS,doWhatever],function (err, results){
console.log(results);
});
相关文章:
- 如何在不知道关键字的情况下访问javascript对象值
- 如何使用javascript在不更改页面的情况下访问文件上传所选文件
- 如何在不更改Javascript页面的情况下访问用户输入的电子邮件
- 在不更改html的情况下访问特定的html元素值
- react-在不破坏封装的情况下访问DOM
- Javascript在不知道所有键的情况下访问多维数组
- 在不知道名称的情况下访问 json 对象中的元素
- 是否可以在不使用索引号的情况下访问 json 数组元素
- 如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件
- 在不使用键的情况下访问 JSON 对象中的数组
- AngularJS:如何在不通过多个$parent导航的情况下访问最顶层的范围
- 我们可以在不将其加载到无限可滚动网页中的情况下访问 DOM 元素吗?
- 如何在不回发的情况下访问 SQL 数据库中的数据
- 如何在不使用索引器(javascript)的情况下访问数组的元素
- 在没有所有子节点的情况下访问选中节点的名称'姓名
- 数组的对象数组,如何在不使用属性名的情况下访问invidual元素
- 在不创建对象实例的情况下访问原型属性
- 如何在没有id的情况下访问画布元素
- 我的JS代码如何在没有明确缓存DOM元素的情况下访问它们
- Javascript,在不知道我处于什么页面级别的情况下访问url