:::info javascript是单线程,所有事件都是异步进行,例如项目中需要等待ajax返回一个结果,如果之后的方法都写在ajax里success里很多的不方便,这时候用promise做同步操作 :::


    1. //写法
    2. function aaa(){
    3. return new promise((resolve, reject)={
    4. resolve()//成功时返回
    5. reject()//失败时返回
    6. })
    7. }
    8. //调用
    9. aaa().then((resolve)=>{
    10. //返回成功
    11. }).catch((reason)=>{
    12. //返回失败
    13. })
    14. //需要多个方法都完成再运行
    15. Promise.all([p1, p2]).then((resolve)=>{
    16. //resolve返回是个数组[]
    17. })
    18. //多个方法有一个成功即返回
    19. Promise.race([p1, p2]).then(function (result) {
    20. console.log(result); // 'P1'
    21. });