ES6(1)—promise学习

学过android的人都知道,java是基于多线程的,当需要执行一个耗时的操作,比如请求服务端的数据,此时往往需要开一个线程来执行。
但是在我们的js中,是单线程的,请求网路数据的话,我们无法判定什么时候会返回,如果网络情况不是很好的话那么就会很慢。所以不可能去等待他请求完成才去进行下一步操作。所以我们需要异步去请求数据,但是我们又需要知道请求的结果,此时我们就需要一个接口回调来告知我们这个请求的结果。

在ES6中,提供了promise来进行异步操作,并实现了回调。
用法如下:

var promise = new Promise(function (resolve, reject) {
            // 进行一些异步或耗时操作
            if (1) {
                //条件满足,异步操作成功
                resolve("success!");
            } else {
                //条件不满足
                reject(Error("fail"));
            }
        });
        //绑定处理程序
        promise.then(function (result) {
            //promise成功回调
            console.log(result); // "success"
        }, function (err) {
            //promise失败回调
            console.log(err); // Error: "fail"
        });

实现起来有三步:
1. 第一步:创建一个promise对象,并在里边去做一些事情,比如Ajax请求数据
2. 第二步:在这个对象方法中,指定条件相应。比如ajax请求返回的数据state==200的时候,使用 resolve(“success!”);回调,如果不是,则使用 reject(Error(“fail”));
3. 第三步:使用 promise.then监听这两个回调函数,在成功或者失败的时候做出我们期望的相应操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值