最近在做批量打印并监控显示打印进度的功能,用到了很多异步函数,很多异步函数嵌套在回调函数里面,层层嵌套,导致代码可阅读性与可维护性变得十分糟糕,而且由于都是异步执行的函数,无法知道什么时候能回调结束,无法保证程序能安全执行,为了能解决这个问题,避免"回调地狱",于是就需要用Promise函数。
什么是Promise函数
1. 什么是Promise函数?
Promise是一个方案,用来解决多层回调嵌套的解决方案。它现在是ES6的原生对象。
2. Promise函数有什么作用?
可以把一个多层嵌套的同步、异步都有回调的方法,给拉直为一串.then()组成的调用链。
3. Promise函数能解决什么问题?
多层嵌套的回调方法中,如果同时存在同步、异步的方法,那么实际执行顺序会混乱。不好调试不好维护。
Promise函数的使用
var getJSON = function(url) { var promise = new Promise(function(resolve, reject){ $.get(url,function (result) { resolve(result); }) }); return promise; }; getJSON("/test/getData").then(function(json) { console.log('Contents: ' + JSON.stringify(json)); }, function(error) { console.error('出错了', error); });