ES6 Promise 简介

为什么引入Promise ?

提供异步操作的一种方案,以前是用setTimeout里面嵌套写setTimeout,这样会陷入无限的回调嵌套。
Promise提供使用性更强的一种规范,来处理异步程序。
在编程的代码上,它把网络请求 与 数据处理代码分开,更具条理性

Promise基本使用

在编程中,Promise是一个类,使用的时候直接new 去调用它的构造函数,并传入一个函数作为参数,这个函数有两个参数
resolve, reject,其中,视情况决定调用谁

new Promise((resolve, reject)=>{
    
    
	setTimeout( ()={
    
    //请求数据代码...},1000);
	if(data){
    
    
		resolve(data);
	}else{
    
    
		reject("err message: data was not found!");
	}
});

调用之后,Pomise会去执行相应的异步程序,利用.then() /.catch()捕获。

new Promise((resolve, reject)=>{
    
    
	setTimeout( ()={
    
    //请求数据代码...},1000);
	if(data){
    
    
		resolve(data);
	}else{
    
    
		reject("err message: data was not found!");
	}
}).then( (data)=>{
    
    
	//处理数据的代码...
}).catch( (err)=> {
    
    
	//处理错误代码...
});

//特殊写法:.then( ()=>{//resolve}, ()=>{//reject})
new Promise((resolve, reject)=>{
    
    
	setTimeout( ()={
    
    //请求数据代码...},1000);
	if(data){
    
    
		resolve(data);
	}else{
    
    
		reject("err message: data was not found!");
	}
}).then( (data)=>{
    
    
	//处理数据的代码...
},(err)=> {
    
    
	//处理错误代码...
});

猜你喜欢

转载自blog.csdn.net/weixin_42557786/article/details/115123005