0
点赞
收藏
分享

微信扫一扫

跨域问题CORS

zhaoxj0217 1天前 阅读 0

promise语法结构

创建一个promise对象

let p = new Promise(function(resolve,reject){
    // 执行的操作
    ...
    // 判断操作的结果并执行对应的回调函数
    if(){
        resolve()
    }else{
        reject()
    }
}

        以上实例化了一个promise对象,其中包含了一个参数function,这个函数会在p实例化时立刻执行,这是同步的,它有两个参数回调resolve和reject (关于回调函数可以参考---js回调函数callback),分别表示操作成功操作失败两种状态,它们同属于执行完成的状态

 promise 对象具有以下内部属性:

这两个内部属性不可被直接修改,属于私有量。

同时它还有拥有2个实例化方法,then()和catch(),

then()

// 异步返回结果
p.then(()=>{
    // p成功执行
    console.log("success",p);
},()=>{
    // p失败执行
    console.log("fail",p);
})

第一个回调是成功时执行,第二个回调是失败时执行,

catch()

// 异步返回结果
p.catch(()=>{
    // p失败执行
    console.log("fail",p);
})

只有一个回调捕获失败的情况执行,catch(f) 与 then(null, f) 一样

两种方法均在promise被设置,且状态是被执行 才会触发,这是异步的

一个promise的实例

function getData(b) {  
    if(b){
        return true;
    }else{
        return false;
    }
}
let p = new Promise(function(resolve,reject){
    //执行一个操作
    let data;
    setTimeout(()=>{
        console.log("promise执行中...");
        data = getData(1);
        if(data){// 是否拿到数据
        resolve("成功") // 成功,返回成功信号
    }else{
        reject("失败") // 失败,返回失败信号
    }
    },1000);
});
// 异步返回结果
p.then(()=>{
    // p成功执行
    console.log("success",p);
},()=>{
    // p失败执行
    console.log("fail",p);
})

console.log("模拟获取数据...");

得到结果如下

小结

        promise是一个对象,它包含了一个操作和这个操作的执行状态,它可以根据操作的执行状态(成功和失败)执行对应的方法,而这个过程是异步的,它会等待操作的执行返回结果

举报

相关推荐

0 条评论