Skip to content

异步函数理解及第三方库使用遇到的问题 #587

@babysodme

Description

@babysodme

Javascript入门问题记录

异步函数理解产生的问题
问题背景:
长时间以来才对理解间接返回和异步处理的关系以及在使用第三方库过程中遇到的问题。

基础知识理解

  1. 函数的定义
  • 函数语法定义:
    function print(content) { console.log(content); }
    使用情景:全局声明,高频次使用。

  • 函数表达式定义方式
    var print = function (content) { console.log(content); }
    使用情景:局部使用,省略变量直接嵌套在函数内使用,低频次时使用,一次性函数。

  1. 函数的处理顺序(函数包函数处理顺序)
  • 在代码执行过程中解释器按照规则在运行环境中逐行处理;经历调用=>参数判断=>逻辑处理=>返回结果给调用者这个时候如果是调用的异步函数依旧这样执行只是会分两个线程出来各自处理,异步函数首先会返回好的然后判断、处理、通过callback函数在返回给调用者结果。

延伸理解:

  • 函数与变量的关系:函数可以附值给变量相当于简化为一个词,极大的方便了局部或者全局来调用函数,变量又可以调用属性来调用函数,表达式和变量构造出函数又附值给变量这种彼此的操控处理太微妙了,好神奇。
  • 灵活的使用两种定义方式在不同作用域可以大大减少代码数量,得当的使用会节省更多内存,一次性函数,局部变量,全局变量的合理划分可以减少错误的发生。
  • 两种函数定义方式构造出的函数为更好的协作带来了可能性,陌生人就像使用Math.random()一样灵活的使用vue等大量的第三方库,这件事情更微妙,更神奇了。
  • html引用的css、vue、bootstrap等等第三方库,暂时只考虑js库,他们写了个超大函数封装在一起,不同情景传入不同参数调用不同的方法,
    猜应该更多的还是异步处理方式,相比同步处理异步太全能了。
  • 同步和异步是两种不同的工作流,同步是单线处理,异步开了更多的线程。但其中函数的逐条执行原则是不变的,异步某种程度可不可以由若干同
    步单元函数构成。

那么问题来了

  • 问题1:一个执行函数调用了一个异步函数,异步函数首先的反应是说声好的,然后就去判断参数、逻辑处理、返回结果。那么这个好的 是以什么样的方式传递给调用者的呢,如果自己想了解也想构造类似简单的异步函数需要了解什么资料呢?

  • 问题2: 假如函数a()调用了异步b(),b()简单处理后将参数传递给并调用异步c(),····假设依次传到m()了,好比老板调用了秘书、秘书却安排人事来处理、人事还安排他的助手处理那么这个最终返回结果过程会通过每次调用塞的callback函数原路返回对吗?

  • 问题3:浏览器访问一个网址,服务器返回html+css+js这些文件,浏览器接收后渲染页面,执行js文件,假如这些js文件中有无限循环的函数,出于安全及节省资源考虑浏览器运行环境是不是要终止函数循环。?在没有get和post的请求下,怎么才能用函数控制页面的值不停的循环变化呢?就像标签可以加loop循环属性。需要用什么方法呢 ?

  • 问题4:使用vue在body里挂上钩子,就可以通过函数来渲染页面,那么html文件里和<script>里彼此的变量和方法是怎么构建起连接的呢?


教师节快乐!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions