理解node.js回调

understanding node.js callback

本文关键字:回调 js node 理解      更新时间:2024-06-21

我正在使用urlib向网页发出请求,并试图返回它的标题,如下所示:

var getHeaders = function(webpage){
    var info = urllib.request(webpage, {}, function(err, data, res){
        // console.log(res.headers); works fine and shows them
        return res.headers; // I thought it should make the info variable have the headers information
    }); 
    return info; 
}

现在,当我试图获得标题时,比如网页的set-cookie,我本想让它从网站返回标题,但它没有,所以有没有办法返回标题,或者就是不可能这样做?

在Node中,几乎所有事情都是异步完成的,所以您只需要函数是异步的。

var getHeaders = function (webpage, done) {
    urllib.request(webpage, {}, function(err, data, res){
        done(err, res.headers);
    });  
}

传统的模式是使用回调,返回错误作为第一个参数(或者在一切顺利的情况下返回错误值),以及之后需要返回的任何内容。

使用该方法与使用urllib的方法非常相似。

getHeaders(webpage, function (err, headers) {
    if (err) {
        throw err; // or, you know, deal with it.
    }
    console.log(headers);
});