Функция возвращает значение до выполнения загрузки изображения Jquery.

if (DataService.Validation(file)) {
    //angularjs call to api controller
};    

//DataService
Validation: function (file) {
    var Url =   URL.createObjectURL(file);
    var img = new Image();

    $(img).load(function () {
        var imgwidth = this.width;
        var imgheight = this.height;
        if (imgheight  > 400) {
            viewModel.ErrorMessage = 'The Image height cannot be more then 400 px.';
            return false;
        }
    });

    img.src = Url;

    if (file == null) {
        viewModel.ErrorMessage = 'Please select a file to upload.';
        return false;
    }

    if (viewModel.Name == null) {
        viewModel.ErrorMessage = 'Name is a required field.';
        return false;
    }

    return true;
}

Вышеупомянутая функция проверки завершает выполнение и возвращает значение true без кода внутри функции загрузки img. Это означает, что даже если изображение превышает 400 пикселей, проверка возвращает значение true, поскольку код внутри загрузки выполняется через длительное время после того, как весь JQuery AJAX-вызов отправляется на контроллер API. Я пытаюсь добиться, чтобы проверка не возвращала значение, пока не будет выполнен код внутри загрузки изображения.

Ответы на вопрос(1)

Ваш ответ на вопрос