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属性。




待补充

你可能感兴趣的:(js 异步操作,回调函数控制执行顺序)