美文网首页
promise 对象

promise 对象

作者: vavid | 来源:发表于2018-07-17 17:21 被阅读0次

    用来获取异步操作的结果。
    异步操作的三种状态:pending(进行中)、fulfill(已成功)、rejected(已失败)。
    Promise状态的变化的两种状态:pending --> fulfill 或者 pending --> rejected。这两种情况发生,状态即凝固,称为 resolved (已经定型)。
    基本用法:

            const promise = new Promise((resolve, reject) => {
                    // ... 异步操作代码 
                    // 成功 res
                    // 失败信息 err
                    if(/* 操作成功*/){
                          resolve(res);
                    }else{
                           reject(err)
                    }
            }) 
    

    promise 实例生成之后,可以用 then 方法指定 resolved 的状态 或者 rejected 的状态的回调函数

            promise.then(function(){
                // success
            },function(){
                 // error
            })
    

    1.一个简单的Promise对象的例子

        function timeout(ms){
            return new Promise((resolve, reject) => {
                setTimeout( resolve, ms, 'done');
            });
        }
        timeout(100).then((value) => {
            console.log(value);
        })
    

    2.利用Promise.all合并多个异步请求

            const p1 = new Promise((resolve, reject) => {
                    // ... 异步操作代码
                    resolve('a')
            })
            const p2 = new Promise((resolve, reject) => {
                    // ... 异步操作代码
                    resolve('b')
            })
            Promise.all([p1,p2]).then(result=>{
                 // result: ['a', 'b']    
                 // 其它操作      
            })
    

    相关文章

      网友评论

          本文标题:promise 对象

          本文链接:https://www.haomeiwen.com/subject/fgsgpftx.html