Promise

本文详细介绍了JavaScript中的Promise,包括其定义、方法如then()、catch()和finally(),以及如何使用Promise解决异步回调问题。通过示例展示了Promise的状态变化,以及在处理异步操作时避免回调地狱的方法。还探讨了async和await的使用,以及Promise.all()、Promise.race()和Promise.allSettled()等构造函数方法的应用。
摘要由CSDN通过智能技术生成
    定义: JS内置的构造函数,用来实例化,创建一个promise对象,promise实例对象提供一些方法
    方法: then()   catch()   finally()
    应用场景: 一般用来解决异步回调,每次的状态,只能变化一次
let p = new Promise(function(resolve,reject){
    //该位置一般写异步的代码
    //根据异步代码的执行条件合理的去使用
    resolve 和 reject
})
Promise共3个状态
     一:pending: 持续/等待
    二:fulfilled:  表示Promise成功状态
     三:rejected: 表示Promise失败状态
let p = new Promise(function(resolve,reject){
    resolve()   //回调函数,只要调用该resolve()函数,Promise的状态由pending变成fulfilled状态
    reject()    //回调函数,只要调用该reject()函数,Promise的状态由pending变成rejected状态
})
console.log(p);
    //当调用resolve()触发了promise实例对象p上的.then(()=>{})方法中的函数
    //当调用reject()触发了promise实例对象上的catch(()=>{})方法中的函数
let p1 = new Promise(function(resolve , reject){
    let time = Math.random()*2000+1000   //[1000,3000)
    setTimeout(()=>{
        if(time<2000){
            console.log('请求成功');
            resolve('成功')
        }else{
            console.log('请求失败');
            reject('失败')
        }
    },time)
})
console.log(p1);    //Promise {<pending>}:持续/等待
//示例一
p1.then((res)=>{
    console.log(res);
})
p1.catch((err)=>{
    console.log(err);    //会出现报错
})
//在Promise中调用resolve()执行then()中方法
//在Promise中调用reject()执行catch()中方法
//示例二
//promise实例对象支持链式调用实例上的方法
p1.then((res)=>{
    console.log(res);
}).catch((err)=>{
    console.log(err);    //不会出现报错
})
Promise解决回调地狱问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值