我正在尝试创建一个函数,以检查给定的URL是否有效。 这是我到目前为止所做的:
function checkWebsite(url) {
http
.get(url, function(res) {
console.log(url, res.statusCode);
return res.statusCode === 200;
})
.on("error", function(e) {
return false;
});
}
我想等到http get完成,然后根据状态码返回true或false,并且作为回调函数中的响应,我不知道如何将其返回到被调用的位置。 示例调用:
function test() {
if (checkWebsite("https://stackoverflow.com/")) {
return "https://stackoverflow.com/";
}
}
我想在此if语句中获得true或false,但是由于状态代码位于回调函数中,所以我不知道如何返回它。
答案 0 :(得分:2)
我会给您一个有效的代码段,因为您无法从链接的答案中找出答案,也许会对您有所帮助:
var http = require('http');
var https = require('https');
test();
function checkWebsite(url, callback) {
https
.get(url, function(res) {
console.log(url, res.statusCode);
return callback(res.statusCode === 200);
})
.on("error", function(e) {
return callback(false);
});
}
function test(){
checkWebsite("https://stackoverflow.com/", function(check){
console.log(check); //true
})
}
有诺言:
var http = require('http');
var https = require('https');
test();
function checkWebsite(url) {
return new Promise((resolve, reject) => {
https
.get(url, function(res) {
console.log(url, res.statusCode);
resolve(res.statusCode === 200);
})
.on("error", function(e) {
resolve(false);
});
})
}
async function test(){
var check = await checkWebsite("https://stackoverflow.com/");
console.log(check); //true
}