使用Promise

本文通过一个异步调用的示例,详细解析了Promise对象的工作原理。包括如何使用resolve和reject来控制流程,以及then和catch方法的执行时机。同时,文章提供了运行在谷歌控制台的小demo代码,便于读者理解和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看头儿的代码里很多这种异步调用,所以学习一下
运行一个小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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值