Promise解决回调函数的问题
来源:互联网 发布:连接线共享网络给手机 编辑:程序博客网 时间:2024/04/30 20:30
再次跟大家推荐scott老师的教程,感觉能学到很多东西
javascript回调函数的反人类写法
在javascript中如果要先执行fun1,然后执行fun2,一般采用回调函数方法,方法如下
var a = 0, b = 20function add(num,callback){ setTimeout(function(){ if(num==10||num ==30){ callback&&callback() }else{ num++ console.log(num) add(num,callback) } },100)}add(a,function(){ add(b)})
注意 不能使用add(a,add(b))的方法调用,具体还不知道为什么。如果大家有知道的希望告知我一下哦~谢谢!一起进步嘛
可是这个方法呢其实比较恶心,这里是有一层回调函数,如果有很多层回调的话将会特别麻烦的。于是我们可以使用Promise
安装
首先需要在项目中安装bluebird
npm install bluebird
不过还需要引入进来
<script src = "./node_modules/bluebird/js/browser/bluebird.js"> </script>
引入之后再浏览器中就有一个全局变量Promise。
接着我们就可以这样写
function promiseAdd(num){ return new Promise(function(resolve,reject){ function _add(num,callback){ setTimeout(function(){ if(num==10||num ==30){ resolve() }else{ num++ console.log(num) _add(num,callback) } },100) } _add }}promiseAdd(a) .then(function(){ return promiseAdd(b) }) .then(function(){ //blabla }) .then(function(){ //blabla })
这样写起来就清晰了很多
0 0
- Promise解决回调函数的问题
- NodeJS中将回调函数转换成Promise的例子
- js promise 模式的 异步回调函数
- 解决回调函数里面回调另一个函数,另一个函数的参数需要依赖这个回调函数(promise)
- Nodejs-使用 promise 替代回调函数
- JS-promise, 异步回调函数模式
- 将回调函数转换成promise(粗糙版)
- 对话框回调函数的问题
- Extjs的回调函数问题
- AJAX回调函数内部给全局变量赋值的问题与解决
- C语言使用回调函数解决内存申请和释放的问题
- Node.js 回调函数来解决SQL语句与返回值的异步问题
- 解决使用ajaxFileUpload上传控件出现的问题:回调函数总是进入error或success
- Registering JavaScript object methods as callbacks(注册一个对像方法为回调函数[解决回调函数的上下文问题])
- paip.AJAX回调函数不起作用的解决
- ajax回调函数,返回的字符串乱码解决
- $.post 回调函数callback不执行的解决
- promise 解决异步问题
- 堆栈溢出及其原因
- 注入(1)--注册表注入
- 【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
- Unity3D自学笔记——UGUI系统介绍
- 日常算法
- Promise解决回调函数的问题
- 【数据结构】线性表(一)
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- 【数据结构】线性表(二)
- C#之打印空心三角形
- 【Dongle】【数据库系统原理】模式分解之无损分解
- 关于Lane以及USC-SIPI
- 拆分数字
- 最累的时光,也是最好的时光