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

  • 相关阅读:
    从零开始学asyncio(中)
    从零开始学asyncio(上)
    Java 后台多次获取requestBody
    Swift中的构造器
    CIDetector 相册识别二维码出错
    Swift-类和结构体
    定时器的使用以及注意事项
    ios-视图控制器跳转时生命周期的调用
    使用NSString的一些注意事项
    CALayer的锚点
  • 原文地址:https://www.cnblogs.com/deepalley/p/14747959.html
Copyright © 2011-2022 走看看