Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильно ли заюзал промисы? (https://javascript.ru/forum/misc/82806-pravilno-li-zayuzal-promisy.html)

micscr 08.07.2021 14:06

Правильно ли заюзал промисы?
 
Приветствую.
На лету картинка режется следующим кодом, если вставить в обработчик нажатия кнопки:
$uploadCrop.croppie('result', {
			type: 'canvas',
			size: 'viewport'
		}).then(function (resp) {
			$('#userprofile-avatar').val(resp);
		});

А я хочу чтобы это делалось автоматом, перед сабмитом формы.
then - это явно что то с промисами или подобным.

Написал следующий код, он работает как надо, ждет пока порежет, и потом сабмит:

$('#my-form').submit(async function(){
         await $uploadCrop.croppie('result', {
                type: 'canvas',
                size: 'viewport'
        }).then(function (resp) {
                $('#userprofile-avatar').val(resp);
        });    
        return true;
    });


Но скажите, насколько он кошерный? async/await , все верно расставил?

p.s. Есть jQuery

Vlasenko Fedor 08.07.2021 16:51

const resp = await $uploadCrop.croppie('result', {
  type: 'canvas',
  size: 'viewport'
})

по идее так должно быть
но не понятно, что у вас в resp
так как вы затем присваиваете его значение элементу
на всяк случай пример готового

micscr 09.07.2021 06:18

С resp нет проблем, это все работает, там обрезанная картинка:
Цитата:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAYAA.. ..
, то что я на сервер отсылаю

Код с then взял из официального примера, поэтому его и использую

Vlasenko Fedor 09.07.2021 10:44

const resp = await $uploadCrop.croppie('result', {
  type: 'canvas',
  size: 'viewport'
})
const avatar = $('#userprofile-avatar')[0];
avatar.srs = resp;

тогда так если resp base 64 и userprofile-avatar img


Часовой пояс GMT +3, время: 08:22.