XMLHttpRequest.readyState 是否有 node.js http 等价物?
Is there an node.js http equivalent for XMLHttpRequest.readyState?
对于 Javascript 的 XMLHttpRequest 对象,有一个名为 readyState 的 属性,它经常与响应代码一起使用,以检查 HTTP 请求之前是否已完成处理其他代码。
if (this.readyState == 4 && this.status == 200) {
// Do stuff
}
使用 Node.js 的 http module you can make HTTP requests 并检索状态代码,就像 XMLHttpRequest 对象一样。
if (`${res.statusCode}` == 200) {
//Do things
}
但是,http 模块是否有任何与 XMLHttpRequest 对象所具有的“readyState”属性 等效的东西?我似乎无法在任何地方找到它的任何文档,但我想确保我只是 运行 发送请求完全完成后的下一个代码,而不是在完成一半时。
只要响应完全完成,您就可以使用 res.on('end', callback)
到 运行,完成时传递回调来处理响应。
在这种情况下,以一张巨大的图片为例。当检索到所有块时,它会继续进行到最后,然后在它之后立即调用回调。
const http = require('http')
const options = {
host: 'placekitten.com',
path: '/5000/2500'
}
http.get(options, (res) => {
let code = res.statusCode
console.log("Got response: " + code)
res.on('data', chunk => console.log("Data received"))
res.on('end', () => {
if (code === 200) {
console.log("Sent request has fully finished")
} else {
console.log("Code wasn't 200!")
}
})
}).on('error', function(e) {
console.log("Got error: " + e.message)
})
放置此代码 here 以在实时服务器上试用。
对于 Javascript 的 XMLHttpRequest 对象,有一个名为 readyState 的 属性,它经常与响应代码一起使用,以检查 HTTP 请求之前是否已完成处理其他代码。
if (this.readyState == 4 && this.status == 200) {
// Do stuff
}
使用 Node.js 的 http module you can make HTTP requests 并检索状态代码,就像 XMLHttpRequest 对象一样。
if (`${res.statusCode}` == 200) {
//Do things
}
但是,http 模块是否有任何与 XMLHttpRequest 对象所具有的“readyState”属性 等效的东西?我似乎无法在任何地方找到它的任何文档,但我想确保我只是 运行 发送请求完全完成后的下一个代码,而不是在完成一半时。
只要响应完全完成,您就可以使用 res.on('end', callback)
到 运行,完成时传递回调来处理响应。
在这种情况下,以一张巨大的图片为例。当检索到所有块时,它会继续进行到最后,然后在它之后立即调用回调。
const http = require('http')
const options = {
host: 'placekitten.com',
path: '/5000/2500'
}
http.get(options, (res) => {
let code = res.statusCode
console.log("Got response: " + code)
res.on('data', chunk => console.log("Data received"))
res.on('end', () => {
if (code === 200) {
console.log("Sent request has fully finished")
} else {
console.log("Code wasn't 200!")
}
})
}).on('error', function(e) {
console.log("Got error: " + e.message)
})
放置此代码 here 以在实时服务器上试用。