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


Posted in Javascript onDecember 24, 2013

需求:
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属性。

Javascript 相关文章推荐
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
chrome原生方法之数组
Nov 30 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
Sep 26 Javascript
jquery.validate提示错误信息位置方法
Jan 22 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
小白教程|一小时上手最流行的前端框架vue(推荐)
Apr 10 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 #Javascript
js中function()使用方法
Dec 24 #Javascript
document节点对象的获取方式示例介绍
Dec 24 #Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 #Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
Dec 24 #Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 #Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 #Javascript
You might like
php异步多线程swoole用法实例
2014/11/14 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
javascript读取RSS数据
2007/01/20 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
全面了解js中的script标签
2016/07/04 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
vue 项目常用加载器及配置详解
2018/01/22 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
jQuery实现评论模块
2020/08/19 jQuery
Python pass 语句使用示例
2014/03/11 Python
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
python 瀑布线指标编写实例
2020/06/03 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
英语教育专业自荐信
2014/05/29 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2014年党员整改措施
2014/10/24 职场文书
优秀团队申报材料
2014/12/26 职场文书
三行辞职书范文
2015/02/26 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
Django操作cookie的实现
2021/05/26 Python
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android