使用Promise

最近看头儿的代码里很多这种异步调用,所以学习一下
运行一个小demo,直接在谷歌控制台运行的:

一、一个demo
new Promise(function (resolve, reject) {
    console.log('(1)start new Promise...');
    var timeOut = Math.random() * 2;
    console.log('(2)set timeout to: ' + timeOut + ' seconds.');
    setTimeout(function () {
        if (timeOut < 1) {
            console.log('(3)call resolve()...');
            resolve('(4)200 OK');
        }
        else {
            console.log('(5)call reject()...');
            reject('(6)timeout in ' + timeOut + ' seconds.');
        }
    }, timeOut * 1000);
}).then(function (r) {
    console.log('(7)Done: ' + r);
}).catch(function (reason) {
    console.log('(8)Failed: ' + reason);
});
  1. promise对象内报了错,运行catch()
    在这里插入图片描述
  2. 调用了resolve(),运行then().
    在这里插入图片描述
  3. 调用了reject(),运行catch().
    在这里插入图片描述

结论:

promise对象调用了resolve()就执行then();调用了reject()或者promise内报了错就执行catch()。

二、项目中的一个例子
三、参考

廖雪峰的官方网站–Promise

MDN web docs–Promise

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值