一篇文章看懂Javascript中的Promise(详解)

2023年9月30日 285点热度 0人点赞 0条评论

对于ES6中的Promise,我们来看一下它是一个对象还是一个函数?

    handler_func(){
      console.dir(Promise)
    }

Promise详解
可以看到,它是一个构造函数,身上有then、catch和原型链上的resolve、reject等这些函数

既然是构造函数,那么就可以使用new来创建对象,且作为构造函数,它是接收一个函数作为参数,如下:

const p = new Promise(function(resolve,reject))

那么作为参数的函数传进去有什么用呢?
可以做一些比如网络请求的异步操作:

var p = new Promise(function(resolve, reject){
    setTimeout(function(){
        console.log('执行完成');
        resolve('一些数据');
    }, 3000);
}

一般网络请求,我们是放在一个自定义的事件触发函数里的,比如点击了一个按钮,就会触发事件函数:clickEvent()

clickEvent(){
   var p = new Promise(function(resolve, reject){
    setTimeout(function(){
        console.log('执行完成');
        resolve('一些数据');
    }, 3000);
  }
  return p;
}

调用这个函数:

clickEvent().then(function(data){
   console.log(data)
})

打印结果:一些数据

小小调酒师

此刻打盹,你将做梦; 此刻学习,你将圆梦。 个人邮箱:shellways@foxmail.com

文章评论