Избегать отставания, вызванного подъемом

Я хочу войти 'постучал' и выполнить HUD как можно скорее, но oauth_upload_photo заставляет его отставать (очевидно из-за подъема). Как я могу мгновенно привязать HUD??

var submit_post = function submit_post(){

    console.log('tapped');

    // Show HUD
    plugins.navigationBar.hideRightButton();
    var hud = document.getElementById("hud");
    hud.style.display = 'block';    

    // Get the image
    var image = document.getElementById('myImage');
    var imageURI = image.src;

    // Get the caption from the textarea
    var cap = document.getElementById('tar');
    var caption = cap.value;

    // Call upload photo
    oauth_upload_photo(imageURI,caption);

};

1 ответ

Ваша проблема (которая требует гораздо большего объяснения, прежде чем мы сможем понять, о чем вы на самом деле спрашиваете) не имеет ничего общего с подъемом переменной JavaScript. Все, что нужно сделать, - это определить переменные в верхней части функции, независимо от того, где находится их первоначальное объявление в функции. Это не меняет порядок выполнения любых операторов.

Также в некоторых браузерах console.log() не гарантируется полная синхронность, и отображение данных в окне журнала также не обязательно происходит немедленно. Иногда происходит задержка, прежде чем он действительно регистрируется. Я не знаю, вызвано ли это маршалингом данных через границы процессов, общей логикой перерисовки или какой-либо другой внутренней проблемой реализации.

Вы также можете изменить это:

var submit_post = function submit_post(){

к этому:

var submit_post = function (){

или даже это:

function submit_post() {

так что вы не дважды определяете один и тот же символ.

Другие вопросы по тегам