博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Promise简单使用
阅读量:6643 次
发布时间:2019-06-25

本文共 1614 字,大约阅读时间需要 5 分钟。

1.Promise含义

Promise 是异步编程的一种解决方案,是一种链式的变成。

一段简单的使用

function helloPromise(ready) {        return new Promise((resolve, reject)=>{            if(ready)            {                resolve('helloPromise');            }            else{                reject('error');            }        });    }    helloPromise(true).then((message)=> {        alert(message);    }, (error)=> {        alert(error);    });

Promise的状态有三种

pending(进行中)

fulfilled(已成功)

rejected(已失败)

 

then和catch的用法

catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数。使用catch写法比一般写法更加清晰。

function helloPromise(ready) {        return new Promise((resolve, reject)=>{            if(ready)            {                resolve('helloPromise');            }            else{                reject('error');            }        });    }    helloPromise(false).then((message)=> {        alert(message);    }).catch((error)=> {        alert(error);    }); 

Promise.all用于将多个Promise包装成一个新的Promise

Promise.all([p1, p2, p3]);

它们会按照包装的先后顺序依次执行

let p1=new Promise((resolve)=>{        setTimeout(()=>resolve('hello'),2000);    });    let p2=new Promise((resolve)=>{        setTimeout(()=>resolve('promise',1000));    });    Promise.all([p1,p2]).then((message)=>{        console.log(message);    });

Promise.race和Promise.all不同,只要其中有一项Promise执行完成就执行后续操作

let p1=new Promise((resolve)=>{        setTimeout(()=>resolve('hello'),2000);    });    let p2=new Promise((resolve)=>{        setTimeout(()=>resolve('promise',1000));    });    Promise.race([p1,p2]).then((message)=>{        console.log(message);    });

上面代码只返回promise  

转载于:https://www.cnblogs.com/lemonzwt/p/8073475.html

你可能感兴趣的文章
网站轮播图
查看>>
cisco之VTP
查看>>
mysql同步到服务器中的一些经验
查看>>
nginx 限流配置
查看>>
Yii2一些方法技巧小记
查看>>
Java 内存区域
查看>>
编写前端统计网页流量,来源,停留时间等
查看>>
python中对象、类型和元类之间的关系
查看>>
C#实现按键精灵的'找图' '找色' '找字'的功能
查看>>
一道面试题-变量声明提升~
查看>>
04、ViewDiscovery
查看>>
VLAN
查看>>
get_slave_status.py
查看>>
C# Smart Thread Pool [线程池]
查看>>
CentOS7.2调整Mysql数据库最大连接数
查看>>
CodeBlocks养眼的colour theme
查看>>
第九届ECNU Coder F.蚂蚁(栈)
查看>>
iOS开发-常见宏定义
查看>>
Git合并分支或者冲突
查看>>
C# 通过反射实现类似MVC路由的机制
查看>>