• es6的Promise(承诺)


    es6的Promise(承诺)

    Promise中的所有回调函数,都是异步执行的
    //用来解决异步的一些问题
    let p = new Promise(function(resolve,refused){
    	console.log("abc");
    	//resolve();
    	setTimeout(function(){
    		resolve();
    	},3000); 
    	console.log("123");
    });
    
    p.then(function(){
    	console.log("def");
    });
    
    //挂起状态     成功状态      失败状态
    
    setTimeout(function(){
    	console.log(1);
    	setTimeout(function(){
    		console.log(2);
    		setTimeout(function(){
    			console.log(3);
    			setTimeout(function(){
    				console.log(4);
    				setTimeout(function(){
    					console.log(6);
    				},5000);
    			},3000);
    		},3000);
    	},2000);
    },1000);
    
    function sleep(times){
    	return new Promise(function(resolve,refused){
    		setTimeout(function(){
    			resolve();
    		},times);
    	});
    }
    
    let pr = new Promise(function(resolve,refused){
    	setTimeout(function(){
    		resolve();
    	},1000);
    });
    
    pr.then(function(){
    	console.log(1);
    	return sleep(2000);
    }).then(function(){
    	console.log(2);
    	return sleep(3000);
    }).then(function(){
    	console.log(3);
    	return sleep(4000);
    }).then(function(){
    	console.log(4);
    });
    
    
    
    let p3 = new Promise(function(resolve,refused){
    	resolve();
    	refused("失败了");
    });
    p3.then(function(){
    	console.log("edf");
    }).catch(function(e){
    	console.log(e);
    });
    
    ES6 对 Promise 有了原生的支持,一个 Promise 是一个等待被异步执行的对象,当它执行完成后,其状态会变成 resolved 或者 rejected。
    每一个 Promise 都有一个 .then 方法,这个方法接受两个参数,第一个是处理 resolved 状态的回调,一个是处理 rejected 状态的回调
  • 相关阅读:
    负外边距--转载
    研究Dropbox Server端文件系统
    Bluetooth Profile for iPhone from the functional perspectives
    Somebody That I Used to Know
    复合查询
    聚合查询
    Filter查询
    ES基本查询
    ES版本控制
    ES基本操作
  • 原文地址:https://www.cnblogs.com/jianghongyan/p/7202757.html
Copyright © 2020-2023  润新知