码迷,mamicode.com
首页 > 编程语言 > 详细

javaScript中的Promise

时间:2021-06-10 18:52:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:promise   运行   用法   状态   resolved   reject   回调   构造   开始   

javaScript中的Promise

Promise的概述

  1. Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件
  2. Promise有一下两个特点:
    • 对象的状态不受外界影响。
    • 一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。

Promise状态

  1. Pending(运行中)
  2. Resolved(已完成)
  3. Rejected(已失败)
  4. PromisePending状态开始,如果成功就转到成功状态,执行Resolved回调函数,反之执行Rejected

Promise基本用法

  1. 通过Promise的构造函数创建Promise对象。

    const proms = (number)=>{
        return new Promise((resolved,Rejected)=>{
            if(number > 0){
                resolved(‘参数大于零‘);
            }else{
                rejected(‘参数小于等于零‘);
            }
        })
    }
    proms(3).then(res=>{
        console.log(res) // 参数大于零
    })
    

Promise其他用法

  1. all方法使用(会等到所有promise方法执行完,依次返回)
function p1(){
    var promise1 = new Promise(function(resolve,reject){
        console.log("p1的第一条输出语句");
        console.log("p1的第二条输出语句");
        resolve("p1完成");
    })
    return promise1;
}

function p2(){
    var promise2 = new Promise(function(resolve,reject){
        console.log("p2的第一条输出语句");
        setTimeout(()=>{console.log("p2的第二条输出语句");resolve("p2完成")},2000);

    })
    return promise2;
}

function p3(){
    var promise3 = new Promise(function(resolve,reject){
        console.log("p3的第一条输出语句");
        console.log("p3的第二条输出语句");
        resolve("p3完成")
    });
    return  promise3;
}

Promise.all([p1(),p2(),p3()]).then(function(data){
    console.log(data);
})

// p1的第一条输出语句
// p1的第二条输出语句
// p2的第一条输出语句
// p3的第一条输出语句
// p3的第二条输出语句
// p2的第二条输出语句
// [‘p1完成‘,‘p2完成‘,‘p3完成‘]

race则不同它等到第一个Promise改变状态就开始执行回调函数。

javaScript中的Promise

标签:promise   运行   用法   状态   resolved   reject   回调   构造   开始   

原文地址:https://www.cnblogs.com/lixingqian/p/14871432.html

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