Promise的基本语法及其then方法

2024-03-11 16:10:07 浏览数 (2)

一.先看看promise

实例化 Promise【承诺】 对象 相当于一个容器,保存着未来才会结束的事件(异步操作) 的一个结果 各种异步操作都可以用同样的方法进行处理 axios 特点: 1. 对象的状态不受外界影响,处理异步操作有三个状态:Pend(进行中)、Resolve(成功的)、Reject(失败的) 2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果 3.【resovle(), reject() 可以返回成功、失败的结果】

1.我们先new一个promise对象

注意:这里我们的 promise 是对象

代码语言:javascript复制
const p = new Promise(function(resolve, reject) {
            setTimeout(function() {
                // 成功的调用
                // let data = '数据库中的用户数据';
                // resolve(data);

                // 失败的调用
                let err = '数据读取失败';
                reject(err);

            }, 1000);
        });

这里面的resolve是成功的调用: 调用resolve时,p就是成功,reject是失败的调用

2.then方法

注意:这里我们then 是 promise里面的一个方法

then方法有两个函数参数,函数有形参,成功的形参一般叫value,失败的形参叫reason。 如果已经调用了成功的方法,失败的方法就不会执行。

代码语言:javascript复制
        //调用 promise 对象的 then 方法 对状态进行回调
        p.then(function(value) { // 成功的函数
            console.log(value); // 数据库中的用户数据

        }, function(reason) { // 失败的函数
            console.error(reason); // 数据读取失败
        })

3.总的看来

这里在外面传递秒数控制输出,并成功的返回 hello promise success!

代码语言:javascript复制
        function timeOut(ms) {
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve('hello promise success!');
                }, ms)
            })
        }
        timeOut(2000).then((val) => {
            console.log(val); // hello promise success!
        })

0 人点赞