js 异步操作回调函数如何控制执行顺序
2013-12-24 00:00
1021 查看
需求:
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属性。
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 异步操作回调函数如何控制执行顺序
- js 异步操作,回调函数控制执行顺序
- Node.js的那些坑(四)——如何让异步并发方法同步顺序执行
- 按照顺序执行异步ajax的回调函数
- 持续讨论 javascript 如何控制优化页面 js 加载顺序
- 网络编程--回调函数 阻塞操作 异步执行
- Python脚本控制的WebDriver 常用操作 <二十一> 执行JS
- ajax 如何用then 链式操作 实现异步先后执行顺序
- 如何控制线程的执行顺序
- 有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?
- js异步执行用回调函数当参数和同步执行的区别的案例
- [原创]Enterprise Library Policy Injection Application Block 之四:如何控制CallHandler的执行顺序
- 如何控制线程执行的先后顺序
- 多个ajax请求时控制执行顺序或者等待执行完成后的操作
- 如何按照顺序执行异步ajax的回调函数
- 如何将遍历异步操作按照同步执行
- 如何使js函数异步执行
- iOS与js交互之如何执行自定义操作
- Enterprise Library Policy Injection Application Block 之四:如何控制CallHandler的执行顺序
- 使用定时器判断确保某个标签有值才执行方法, 控制js代码执行先后顺序