09-promise

promise是异步编程的一种解决方案

什么时候会处理异步事件?

  1. 常见的场景就是网络请求
  2. 我们封装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4=7一样将结果返回
  3. 所以往往我们会传入另外一个函数,在数据请求成功时,将数据通过传入的函数回调出去
  4. 如果只是ig简单的网络请求,那么这种方案不会给我们带来很大的麻烦

但是当网络请求非常复杂时,就会出现回调地狱

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>promise的基本使用</title>
</head>
<body>
    <script>
        //1.使用setTimeout
        // setTimeout(() => {
        //     console.log('Hello World');
        // },1000)

        //参数->函数(resolve,rejevt)
        //resolve和reject本身就是函数

        //链式编程

        //第一次网络请求的代码
        new Promise((resolve,reject)=>{
            setTimeout(() => {
                resolve()
            },1000)
        }).then(()=>{
            //第一次拿到结果的处理代码
            console.log('world');
            console.log('world');
            console.log('world');
            console.log('world');
            console.log('world');

            //第二次网络请求的代码
            return new Promise((resolve, reject) => {
                setTimeout(()=>{
                    resolve()
                },1000)
            }).then(()=>{
                //第二次结果处理的代码
                console.log('vue');
                console.log('vue');
                console.log('vue');
                console.log('vue');

                //第三次网络请求代码
                return new Promise((resolve, reject) => {
                    setTimeout(()=>{
                        resolve()
                    },1000)
                }).then(()=>{
                    //第三次处理代码
                    console.log('python');
                    console.log('python');
                    console.log('python');
                    console.log('python');
                })
            })

        })

    </script>
</body>
</html>
new Promise((resolve, reject) => {
            setTimeout(()=>{
                //成功的时候调用resolve
                //失败的时候调用reject
                reject('error message')
            },1000)
        }).then((data)=>{
            console.log('data');
        }).catch(err=>{
            console.log(err);
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值