Wywołanie async-ajax nie działa zgodnie z oczekiwaniami

Ustawiać:

Robię wywołanie ajax-jsonp, które działa dobrze. Funkcja zwrotna tej zmiany wartości zmiennej „myVaraible”. Zaraz po wywołaniu istnieje pewna logika if-else, która działa na wartość „myVaraible”.

Oto kod:

    <script>
        function myfunction() {
            $.ajax({
                url: myURL,
                dataType: "jsonp",
                jsonp : "jsonp",
                async: false,
                jsonpCallback: "jsonpCallbackFn"
            });
        }

        function jsonpCallbackFn(mydata) { 
            alert("inside jsonpCallbackFn");
            if(something) {
                // change value of a variable "myVariable";
            }
        }

        $(document).ready(function() {
            $("#preview_button").mouseover(function() {
                myfunction();

                alert("after myfunction");
                // do some if-else logic based upon the value of myVariable which is updated by the call to myfunction()
            });
        });
    </script>

Problem:

Wywołanie ajax pozostaje „oczekujące”, formant przesuwa się do bloku if-else (skutecznie wykonując na starej / nieaktualnej wartości myVariable). A potem kończy się wywołanie ajax. Krótko mówiąc, z 2alert pudła,alert("after myfunction"); wykonuje najpierw, a następniealert("inside jsonpCallbackFn");

Jak widać, już ustawiłemasync: false,, ale wygląda na to, że nie działa zgodnie z oczekiwaniami. Czy ktoś może mi powiedzieć, co robię źle? Ponadto nie jestem pewien, czy właściwie wyjaśniłem cały scenariusz, proszę dać mi znać, jeśli potrzebne są dalsze informacje.

Wielkie dzięki.

questionAnswers(2)

yourAnswerToTheQuestion