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开发包大全整理
Dec 22 Javascript
网上应用的一个不错common.js脚本
Aug 08 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
Aug 14 Javascript
JavaScript不刷新实现浏览器的前进后退功能
Nov 05 Javascript
理解JS事件循环
Jan 07 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
Mar 19 Javascript
微信小程序 确认框的实现(附代码)
Jul 23 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
Aug 04 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
关于文本留言本的分页代码
2006/10/09 PHP
oracle资料库函式库
2006/10/09 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
使用python实现ANN
2017/12/20 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
初中校园广播稿
2014/02/02 职场文书
测量工程专业求职信
2014/02/24 职场文书
团拜会策划方案
2014/06/07 职场文书
股东授权委托书范文
2014/09/13 职场文书
员工手册编写范本
2015/05/14 职场文书
MySQL多表查询机制
2022/03/17 MySQL