promise

作者: 懒懒猫 | 来源:发表于2022-02-16 10:27 被阅读0次

    1.promise.all()

                    allSynchronizationSite.forEach(item => {
                      if (item.status === '1' && item.fromId === 'admin') {
                        msgArr.push(
                          getSynchronizationSiteMessage(params).then(res => {
                           console.log(res)
                          })
                        )
                      }
                    })
                    Promise.all(msgArr).then(data => {
                      console.log('msgArr执行完后执行',)
                    })
    

    2.then()

     <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>promiset</title>
    </head>
    
    <body>
        <script>
            // 需求: ajax1执行完再执行ajax2,ajax2执行完再执行task
            var flag1 = true
            var flag2 = true
    
            function ajax1() {
                console.log(111111)
                return new Promise((resolve, reject) => {
                    console.log(22222)
                    setTimeout(function() {
                        console.log('ajax1');
                        if (flag1) {
                            resolve('ajax1的结果')
                        } else {
                            reject("ajax1错误!")
                        }
                    }, 1000)
                })
            }
    
            function ajax2(data) {
                return new Promise((resolve, reject) => {
                    setTimeout(function() {
                        console.log('ajax2');
                        if (flag2) {
                            resolve('ajax2的结果', data)
                        } else {
                            reject("ajax2错误!")
                        }
                    }, 2000)
                })
            }
    
            function task(data) {
                console.log('task');
                console.log(data)
            }
    
            function error(err) {
                console.log(err)
            }
            console.log(444444)
    
            // ajax1()
            //     .then(ajax2)
            //     .then(task)
            //     .catch(error)
    
            ajax1()
                .then(function(data) {
                    return ajax2(data) //Promise的参数机制要求必须是return
                })
                .then(function(data) {
                    task(data)
                })
                .catch(error)
    
    
            // ajax1()
            //     .then(function(data) {
            //         return ajax2(data)
            //     })
            //     .then(function() {
            //         task()
            //     })
            //     .catch(function() {
            //         console.log('err');
            //     })
    
            console.log(333333)
    
            //执行顺序4-1-2-3-ajax1-ajax2-task
        </script>
    </body>
    </html>
    
    
    

    相关文章

      网友评论

          本文标题:promise

          本文链接:https://www.haomeiwen.com/subject/asgjlrtx.html