zoukankan      html  css  js  c++  java
  • 初识Promise

    Promise对象

    曾经用seajs开发后台管理的时候,矫情的PHPER非要JS内联到HTML文件中,方便他调用内容,还指定了jQueryFileUpload作为上传插件.
    当时看到jQueryFileUpload的时候,我是懵逼的,竟然要引入这么多JS!还要按照顺序去引入,不能顺序错误!整个人都崩溃了,于是就写出了一下的回调金字塔.

    seajs.use('__STATIC__/admin/js/other/jquery/jquery.js',function($){
    	seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/load-image.all.js',function(){
    		seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/canvas-to-blob.js',function(){
    			seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/vendor/jquery.ui.widget.js',function(){
    				seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/jquery.iframe-transport.js',function(){
    					seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/jquery.fileupload.js',function(){
    						seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/jquery.fileupload-process.js',function(){
    							seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/jquery.fileupload-image.js',function(){
    								seajs.use('__STATIC__/admin/js/plugins/jQueryFileUpload/jquery.fileupload-validate.js',function(){
    									......
    								});
    							});
    						});
    					});
    				});
    			});
    		});
    	});
    });
    
    

    回调金字塔,一层一层的回调,很容易出现问题,导致整个都崩溃掉.为了解决异步编程,ES6提供了Promise对象.
    Promise对象代表一个异步操作,三种状态: Pending(进行中), Resolved(已完成)和 Rejected(已失败).
    Promise对象的状态变化只有两种,Pending => Resolved 或者 PendingRejected

    Promise新建后,其内部的代码将直接运行.

    var promise = new Promise(function(resolve, reject){
    	//	创建后 以下代码直接执行.
    	var value = Math.round(Math.random());
    	console.log('将要输出: 值为' + value);
    	//	setTimeout 模拟延迟操作
    	setTimeout(function(){
    		if (value === 1) {
    			resolve(value);
    		} else {
    			reject(value);
    		}
    	}, 2000);
    });
    
    promise.then(function(value){
    	console.log('值为1');
    }, function(){
    	console.log('值为0');
    });
    

    (以后待补充)

  • 相关阅读:
    uni-app 轮播图
    uni-app 头部及底部导航
    Eapp 创建项目及简单应用
    nodeJS学习笔记 express获得GET和POST请求参数
    Promise 之基础详细介绍
    动态代理个人理解
    springboot实现日志记录
    调节 alert confirm prompt 的位置
    打印日志文件
    Java正则速成秘籍(三)之见招拆招篇
  • 原文地址:https://www.cnblogs.com/linjilei/p/5681911.html
Copyright © 2011-2022 走看看