美文网首页
promise的概念以及状态

promise的概念以及状态

作者: 恋雨_恋星空 | 来源:发表于2020-09-29 17:18 被阅读0次

promise是js中进行异步编程新的解决方案,具体讲语法上讲是一个构造函数,功能上讲是用来封装异步操作并且获得其结果

promise的状态:初始的状态是pending(未确定的)可能发展为一下两种结果:1:resolved(成功的状态)2:rejected(失败的状态)resolved的结果返回数据一般为value,而rejecte的的结果返回数据为reason;

先进行new Promise()pending状态

//1.创建一个新的promise对象

const p=new Promise((resolve,reject)=>{

console.log('执行excutor')

//执行器函数,同步回调

//执行异步操作任务

setTimeout(()=>{

//3.1成功调用resolve(value)

//3.2失败了,调用reject(reason)

const time=Date.now()

if(time%2==0){

resolve('成功的数据')

}else{

reject('失败的数据')

}

},1000)

})

console.log('new Promise之后')

//执行结果为 执行excutor,new Promise之后 ,因为执行器函数,同步回调

p.then(

value=>{

//接收得到成功的value数据  onResolved

console.log('成功的回调',value)

},

reason=>{

//接收得到失败的reason数据 onReject

console.log('失败的回调',reason)

}

)

promise与普通的纯回调函数的区别:

普通的纯回调函数,需要先指定回调函数,然后才启动异步回调(指定回调函数必须在启动异步任务前)

//1:更加灵活promise 可以先启动异步任务,后面指定回调函数(指定回调函数一般在启动异步任务后,但是有了结果后再指定回调函数也可以)

!promise中1秒后有了结果,3秒后才指定回调

setTimeout(()=>{

p.then(

value=>{

//接收得到成功的value数据  onResolved

console.log('成功的回调',value)

},

reason=>{

//接收得到失败的reason数据 onReject

console.log('失败的回调',reason)

}

)

},3000)

//2:支持链式语法,可以解决地狱回调问题(回调函数嵌套使用不便于阅读和理解)

使用Promise解决地狱回调还会有回调函数,终极解决地狱回调问题使用async、awiat

doSomething.then(function(result){

return  doSomethingSecond(result)

}).then(function (newRequest) {

return  doSomethingtThird(newRequest)

}).then(function (finalRequest) {

console.log(finalRequest)

}).catch(finalCallback)

async function request(){

try{

const request =await doSomething()

const newRequest =await doSomethingSecond(request)

const finalRequest =await doSomethingtThird(newRequest)

console.log(finalRequest)

}catch(error){

finalCallback(error)

}

}

相关文章

  • promise的概念以及状态

    promise是js中进行异步编程新的解决方案,具体讲语法上讲是一个构造函数,功能上讲是用来封装异步操作并且获得其...

  • ES6(Promise)

    Promise的概念 Promise对象用于表示一个异步操作的最终状态(完成或失败)以及其返回的值 --- MD...

  • Promise

    promise对象用于表示一个异步操作的最终状态,以及返回的值 链式回调,不用再写callback Promise...

  • ES6 Promise 对象

    在 MDN 中对 Promise 的定义是:Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及...

  • 如何理解Promise

    Promise是什么? MDN的描述: Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及该异...

  • ES6-promise

    什么是promise Promise 对象用于表示一个异步操作的最终状态(完成或失败)以及其返回的值 Promis...

  • 【promise-01】 什么是Promise

    #什么是Promise Promise对象用于表示一个异步操作得最终状态(完成或者失败)以及其返回的值。---MD...

  • Promise 学习笔记

    promise Promise 的状态 Promise 有三种状态,pending、fulfilled、rejec...

  • Promise基础

    Promise Promise对象的三种状态 Promise状态的改变形式 Promise基本的api eg.1 ...

  • Promise原理及实现

    Promise标准 Promise 规范有很多,如Promise/A,Promise/B,Promise/D 以及...

网友评论

      本文标题:promise的概念以及状态

      本文链接:https://www.haomeiwen.com/subject/qdglyktx.html