16.ES6新特性:Promise对象

<!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>Document</title>
</head>
<body>
    <div id="box">图片加载</div>
    <script>
        /*
            1.Promise是异步编程的一种解决方案,比传统的回调事件和函数更合理强大
                异步编程:setTimeout,可以指定等待时间。先执行以下的代码,再返回来执行本代码
            2.Promise相当于一个容器,保存着某个未来才会结束的事件(一个异步操作)的结果
            3.语法上说:Promise是一个对象,从他可以获取异步消息
            4.Promise提供统一的API,各种异步操作用相同的方法进行处理
            5.可以把异步操作以同步操作的流程表达处理,避免层层嵌套的回调函数
        */
        var box = document.getElementById('box')

                            // 传递图片地址
        function loadImageAsync(url) {
                                        //    成功       失败
            const promise = new Promise(function(resolve, reject){
                // Promise对象用于处理异步。异步处理:消耗时间多的代码
                const image = new Image(); // 创建image对象
                image.src = url // 传递图片地址
                // 监听图片上传成功
                image.onload = function () {
                    resolve(image)
                }
                // 监听图片上传失败
                image.onerror = function(){
                               // 抛出错误信息(红色字体显示)
                    reject(new Error('Could not load image at' + url))
                }
            })
            return promise;
        }
        const promise = loadImageAsync("http://iwenwiki.com/api/musicimg/2.png");
        // then用来分别指定resolved状态和rejected状态的回调函数
        promise.then(function (data) {
            // 成功
            box.appendChild(data)
        },function(error){
            // 失败
            box.innerHTML = "图片加载失败"
            console.log(error);
        })
    </script>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值