浅谈promise函数

在工作当中经常会使用到的promise函数,在这给自己稍微总结下,本身自己理解的不透彻,方便自己查看吧 - -

关于Promise的返回值

 //promise函数
    this.getAccessToken()
        .then((data) => {
            //如果有就解析 没有就会报错 就走 更新
            try {
                //解析
                data = JSON.parse(data)
            }catch (e) {
                //返回一个可以更新access的promise的函数
                return this.updateAccessToken()
            }

            //如果验证通过
            if(this.isValidAccessToken(data)) {
                Promise.resolve(data)
            }else {
                return this.updateAccessToken()
            }
        })
        .then((data) => {
            this.access_token = data.access_token
            this.expires_in = data.expires_in

            this.saveAccessToken(data)
        })
  • then函数内部还是返回的是promise函数,如果有promise函数,那么可以直接return一个以前写好的promise函数
  • 如果返回的不是一个promise函数,那么可以直接return即可,之后依旧可以用then来接收返回的值,或者可以用promise.resolve(str)来包装使之变成一个真正的Promise对象,
    promise.resolve('foo')等价于 ===》 new Promise(resolve => resolve('foo'))
  • promise函数在then回调中可以一直的进行promise下去

你可能感兴趣的:(浅谈promise函数)