promise使用

100 阅读1分钟

Promise其实是一个构造函数

它有resolve,reject等方法,它的原型上有then,catch方法,因此只要作为Promise的实例,都可以共享并调用Promise.prototype上面的方法(then,catch),

一:Promise的使用

首先我们来看一下Promise的使用语法:

new Promise(function(resolve,reject){});
需要new一个promise实例化对象

在实例化Promise时需要传入一个函数excutor作为参数,并且在Promise执行时同步执行

三,resolve和reject的具体用法

先来说说resolve的用法

首先我们来看看Promise的几种状态:

  • pending: 初始状态,成功或失败状态。
  • fulfilled: 意味着操作成功完成。
  • rejected: 意味着操作失败。

当我们在函数中调用resolve方法时,Promise的状态就变成fulfilled,即操作成功状态 Promise.prototype上面的then和catch方法 当Promise状态为fullfilled状态时执行then方法里的操作,then方法里面有两个参数onfulfilled(Promise为fulfilled状态时执行) 和onrejected(Promise为rejected状态时执行),步骤如下:

1,实例化Promise(new Promise(function(resolve,reject)))

2,用Promise的实例调用then方法

let promise = new Promise((resolve, reject)=>{
	setTimeout(function request(){
		let txt = '1'
		if(txt == '1'){
			resolve(txt)
		}else {
			reject('error')	
		}
	},500)
})

这样就完成了一个承诺,成功时调用resolve,失败时调用reject,我们怎么调用呢?

promise.then(res=>{
	//执行成功的回调
	console.log(res)
},err=>{
	//执行失败的回调
	console.log(err)
})