Я вызываю функцию, которая регистрирует регистрацию, выдается с использованием chrome.gcm. Все в порядке, но поскольку обратный вызов требует времени, мой код не работает без console.log или предупреждения. Любые советы, как я могу заставить его ждать?Как подождать обратного вызова?
var registrationId = ""
function register() {
var senderId = 'MY_SENDER_ID';
chrome.gcm.register([senderId], registerCallback);
}
function registerCallback(regId) {
registrationId = regId;
if (chrome.runtime.lastError) {
return false;
}
chrome.storage.local.set({registered: true});
}
$(function(){
$("#register-form").submit(function(e) {
//Disable from further calls
$('#submit').disabled = true;
register()
var name = $('#name').val()
var email = $('#email').val()
//Insert console.log or alert here to slow it down
var chromeId = registrationId
$.ajax({
type: "POST",
url: 'MY_URL',
ajax:false,
data: {chromeId: chromeId, name: name, email:email},
success: function(result)
{
console.log(result)
}
});
});
})
Вы должны упомянуть, что это не ванильный javascript (а также недопустимый jQuery). Кажется, что либо используется 'when.js', либо вы ошибочно' $ .when() ' – thedarklord47
@ thedarklord47 Спасибо, что указали это. Я ошибся в '' '. Также OP уже использует AJAX здесь. Поэтому я подумал, что это было тривиально :) –
^согласился, поэтому путаница при отсутствии синтаксиса 'jQuery.Deferred' haha. upvoted – thedarklord47