您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

js 异步操作回调函数如何控制执行顺序

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 本文为大家讲解下js异步操作时回调函数如何控制执行顺序,感兴趣的朋友可以参考下

需求:  fun A() { asyn(parm1, parm2, onsuccess(){ }) ;}  fun B() {asyn(paem1, parm2, onsuccess(){}) ;}    函数B要求执行在函数A之后    异步执行  如果直接使用  A();  B();    是不能够满足执行条件的。    考虑将B作为回调函数传递给A,然后A再执行的onsucess中执行B函数  A(B);    即可实现功能需求。    js是单线程的.    1、调用函数时,如果参数多于定义时的个数,则多余的参数将会被忽略,如果少于定义时的个数则缺失的参数数会被自动赋予undefined值。  2、如果是用function语句声明的函数定义则不可以出现在循环或条件语句中,但是如果是用函数直接量方法的函数定义则可以出现在任何js表达式中。  3、arguments对象  函数的arguments对象就像一个数组,里面保存着函数调用时的实际参数,可以用arguments[0]、arguments[1]、arguments[2]…等来引用这些参数,即使这些参数在定义函数时是没有的。但arguments并非真正的数组对象。  function a(x,y){  arguments[0] //表示第一个参数x  arguments[1] //表示第一个参数y  arguments[2] //表示第三个参数,前提是在调用函数时传入了三个参数  …  arguments.length //表示实际传入参数的个数  arguments.callee(x,y) //调用自身 }  arguments对象具有length属性,表示的是函数调用时实际传入的参数的个数。  arguments对象还具有callee属性,用来引用当前正在执行的函数,这个在匿名函数中尤其有用。  4、函数的length属性(没错,函数也是具有length属性的)  与arguments.length不同,函数的length属性表示的是在定义函数时的形参个数,而不是函数调用时的实际参数个数。可以用arguments.callee.length来调用函数的length属性。