Дождитесь возврата выполнения асинхронного метода

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть обратный вызов, когда файл отправляется для загрузки, куда мне нужно вернуться false , если я хочу предотвратить загрузку. Я хочу прервать, когда размер изображения не подходит :

 onSend = function(data)
{
    $.when(self._readImage(data[0])).then(function(img)
    {
        if (img.width > 42)
        {
            // onSend should return false
        }
    });

    return true; // true == start uploading
}
  

Как можно дождаться _readImage() выполнения перед возвратом из onSend() ?

примечание: _readImage() в основном просто выполняет a readAsDataURL() с отложенным, который разрешается в img.onload()

Комментарии:

1. Вы не можете, но вы также можете вернуть отложенный объект или заставить его принять обратный вызов.

2. Я не думаю, что вы могли бы сделать это таким образом. Вам нужно будет установить проверку перед началом загрузки, а затем на основе проверки начать или не начинать загрузку