переписать функцию в логическое значение - PullRequest
0 голосов
/ 27 апреля 2019

привет, ребята, у меня есть эта функция: проверка, является ли URL-адрес изображения фактическим изображением, но я хочу изменить его, вместо журнала консоли я хочу, чтобы он возвращал значение true или false,

function checkImage(url) {
  var request = new XMLHttpRequest();
  request.open("GET", url, true);
  request.send();
  request.onload = function() {
    status = request.status;
    if (request.status == 200) //if(statusText == OK)
    {
      console.log("image exists");
    } else {
      console.log("image doesn't exist");
    }
  }
}
checkImage("https://picsum.photos/200/300");

Я хочу, чтобы checkImage возвращал True / False вместо ведения журнала консоли, но когда я пишу, возвращают true или false, это, похоже, не работает, кто-нибудь знает почему?

Ответы [ 2 ]

3 голосов
/ 27 апреля 2019

Если вся цель этой функции - проверить, существует ли изображение с целью отображения изображения по умолчанию, я бы использовал гораздо более простой подход. Почему бы не использовать следующий метод:

<img src="imagenotfound.gif" alt="Image not found" onerror="this.src='imagefound.gif';" />

Это описано более подробно здесь

2 голосов
/ 27 апреля 2019

Просто измените консоль на обратный вызов, это может помочь вам решить ее

function checkImg(url,success,error){
var request = new XMLHttpRequest();
request.open("GET", url, true);
request.send();
request.onload = function() {
status = request.status;
if (request.status == 200) //.if(statusText == OK)
{
  success && success()
} else {
  error && error()
}

} }

Заменить Ajax на Image.onload ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...