【问题标题】:getting data from callbacks using node "request" library使用节点“请求”库从回调中获取数据
【发布时间】:2015-02-10 18:57:50
【问题描述】:

我正在努力研究如何从此代码示例中获取返回数据。如果我尝试从回调函数获取证书数据,它总是空的。我在这里缺少什么吗?

 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"));

最好的问候。

【问题讨论】:

    标签: node.js callback request


    【解决方案1】:

    通过返回“证书”,您将操作称为同步操作,但事实并非如此。

    正确的模式是传递回调函数并处理数据:

     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);
    });
    

    【讨论】:

    • 哇——好的。非常感谢。它现在可以正常工作。只是出于兴趣 _ 是什么意思?
    • 没什么,只是为了显示与 callhttp 函数内部的区别的语义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多