zoukankan      html  css  js  c++  java
  • 在JavaScript中想让一个函数执行完毕之后再执行下一个函数?

    先说结论:

    首先,JavaScript是解释性语言,本来就是顺序执行的!!

    所以,如果发现有一段js代码总是在一段代码之前就执行完了,比如说报了null异常,那么有可能是回调函数的异步机制造成的。

    此种情形下解决的方法是,把要执行的函数放在回调函数内部就可以了。

    举个栗子

    例如用JQuery Ajax 的 $.getJSON 方法:

    $(function () {
    $.getJSON("url", function (res) {
    $("#myDiv").append("<div id = "divId">"+res.name+"</div>");
    }
    });
    $(function(){
    var a = document.getElementById("divId");
    console.log(a.innerHTML);
    });

    这种情况下结果是null,这就是因为第二个函数会在第一个含有回调函数的函数执行完毕之前就开始执行了,还没等append()方法执行,所以结果为空。那么把第二个方法放入回调方法内

    $(function () {
    $.getJSON("url", function (res) {
    $("#myDiv").append("<div id = "divId">"+res.name+"</div>");
    printA();
    }
    });
    function printA(){
    var a = document.getElementById("divId");
    console.log(a.innerHTML);
    }
    

      

    结果为res.name

  • 相关阅读:
    flex
    IOCP三:多个接收
    IOCP三:多个接收
    IOCP二:同时发送和接收
    IOCP二:同时发送和接收
    IOCP一:AcceptEx
    IOCP一:AcceptEx
    字符串和数字相互转换
    字符串和数字相互转换
    QThread应用详解
  • 原文地址:https://www.cnblogs.com/deepalley/p/14747959.html
Copyright © 2011-2022 走看看