Любая идея, почему следующий код:OnLoad функции розжига Out Of Order
<script>
var access_token;
var access_token_secret;
function Login(){
img = document.getElementById('authenticate');
img.src = 'authenticate.png';
login = document.getElementById('login');
login.style.visibility="visible";
}
function cookieHandlerStep1(){
chrome.cookies.get({
url:URL_GOES_HERE,
name:'access_token'
},
function(cookie){
if(cookie){
access_token = cookie['value'];
cookieHandlerStep2();
} else{
Login();
}
});
}
function cookieHandlerStep2(){
chrome.cookies.get({
url:URL_GOES_HERE,
name:'access_token_secret'
},
function(cookie){
if(cookie){
access_token_secret = cookie['value'];
Interact();
} else{
Login();
}
});
}
function Interact(){
alert(access_token);
xhr = new XMLHttpRequest();
xhr.open("GET", URL_GOES_HERE, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
document.write(xhr.responseText);
}
}
xhr.send();
}
</script>
<body onload="cookieHandlerStep1(),cookieHandlerStep2(),Interact()">
Может, возможно, имеют функции выполняющиеся из последовательности?
Это очень полезно , Я, однако, забыл полностью отредактировать код. CookieHandlerStep1 в обновленном коде не запускает CookieHandlerStep2. Не работает CookieHandlerStep2 fire Interact(). Я думаю, что важно, что вы сказали, что обратные вызовы не гарантируются для вызова до остальной части кода. Что со мной произошло (прежде чем я отредактировал каждую функцию, чтобы вызвать следующую функцию в цепочке), срабатывал Interact(), затем CookieHandlerStep1() и, наконец, CookieHandlerStep2(). Не могли бы вы немного объяснить, почему функция обратного вызова не выполняется до следующей функции? –