美文网首页
单例模式,promise与async/await

单例模式,promise与async/await

作者: _v_xw | 来源:发表于2017-11-25 18:44 被阅读0次
  1. 复习了apply ,argument以及闭包在单例模式中的应用
    闭包在其中充当了储存器的作用,用来判断有无实例
  2. promise对象的后代还是promise,成功resolve,失败reject,调用成功then,失败则是catch
    配合async/await简直了。实现对回调数据的等待、(异步中的同步实现)
    async/await中的await使用的顺序很重要(因为实现同步),要想实现异步操作后同步计算输出,可以使用以下代码
    async function add1(x) {
        var a = resolveAfter2Seconds(20)
        var b = resolveAfter2Seconds(20)
        return x + await a + await b
    }

    add1(10).then(v => {
        console.log(v)  //  2秒后输出50
    })

    async function add2(x) {
        var a = await resolveAfter2Seconds(20)
        var b = await resolveAfter2Seconds(30)
        return x + a + b
    }

    add2(10).then(v => {
        console.log(v)  // 4秒后输出60
    })

    async function add3(x) {
        let result = await Promise.all([resolveAfter2Seconds(30),resolveAfter2Seconds(30)]) // 
        return result.reduce((a,b)=>a+b)+x
    }
    add3(10).then(v => {
        console.log(v)  // 2秒后输出70
    })

add1中直接计算然后在将结果进行await相加,实现先异步获取结果,同步输出;和add3使用的Promise.all方法一样(每个promise都先进行异步操作,后等到结果都成功后一起输出)

相关文章

网友评论

      本文标题:单例模式,promise与async/await

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