码迷,mamicode.com
首页 > 其他好文 > 详细

Promise的初步认识

时间:2020-01-09 20:57:57      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:promise   timeout   new   mis   定时   异步   console   结果   回调   

一、

  Promise是异步编程的一种解决方案

 

二、什么时候需要处理异步编程?

  1、网络请求

    我们封装一个网络请求的函数,因为不能立即拿到结果,所以我们往往会传入另外一个函数

    在数据请求成功时,将数据通过传入的函数回调出去,但是当网络请求非常复杂时,就会出现回调地狱

三、Promise的三种状态

  当我们在开发中有异步操作时,就可以给异步操作包装一个promise

  

  promise的三种状态:

    1、pending:等待状态,比如正在进行网络请求,或者定时器没有到时间

    2、fulfill:满足状态,当我们主动回调resolve时,就处于该状态,并且会回调.then()

    3、reject:拒绝状态,当我们主动回调reject时,就处于该状态,并且会回调.catch()

方式:

  new Promise((resolve,reject) = {

    setTimeout(() => {

      resolve(‘good message‘)

      reject(‘error message‘)

    }, 1000)

  }).then(data => {

    console.log(data)

    console.log(data)

  }).catch(err => {

    console.log(err)

  })

 

四、Promise的链式调用

  无论是then还是catch都会返回一个Promise对象

  所以代码是可以进行链式调用的:

    Promise.resolve():将数据包装称Promise对象,并且在内部回调resolve对象

    Promise.reject():将数据包装成Promise对象,并且在内部回调reject对象

 

五、Promise的简写方式

  1、

    return Promise.resolve(res+‘111‘);

    return Promise.reject(res+‘222‘);

  2、省略Promise.resolve

    return res + ‘111‘;

    throw ‘error message‘;

Promise的初步认识

标签:promise   timeout   new   mis   定时   异步   console   结果   回调   

原文地址:https://www.cnblogs.com/jjbw/p/12173245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!