根据此链接:request - Node
The callback argument gets 3 arguments:
An error when applicable (usually from http.ClientRequest object) An http.IncomingMessage object The third is the response body (String or Buffer, or JSON object if the json option is supplied)
代码:
var r = require("request");
var options= {
url: "http://www.example.com/"
};
var callback = function (err, res, body) {
if (!err && res.statusCode == 200) {
res.on("data", function(chunk) {
console.log("DATA : "+chunk);
});
res.on("finish", function() {
console.log("FINISHED");
});
console.log(body);
}
};
r(options, callback);
但在上面的代码中,只有 console.log(body)
起作用,事件发射器不起作用。
此外,如果仅当整个响应正文可用时才会调用回调,那么当我无法将第二个参数设置为 http.IncomingMessage
(Readable Stream) 时,有什么意义流式传输。
最佳答案
当您传递这样的回调时,request
会为您缓冲整个响应,这就是 body
中可用的内容。因此,这意味着您不会在 res
上看到 data
和此类事件,因为它们已由 request
处理.
关于javascript - Node 请求模块 Http.IncomingMessage 不发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239603/