美文网首页
promise学习

promise学习

作者: hhg121 | 来源:发表于2017-09-14 23:38 被阅读7次

    首先,我们来看一个常见的例子

    function 摇色子() {
      setTimeout(function () {
        console.log('开始摇')
        var random = Math.random()
        if (random > 0.5) {
          return '大'
        } else {
          return '小'
        }
      }, 1000)
    }
    var result = 摇色子()
    console.log(result)
    

    我们打开控制台,会看到首先输出的是undefined,然后过了一秒钟输出’开始摇‘,这就是常见的异步例子,针对异步这种情况,我们一般使用回调的方法去拿到结果。

    function 摇色子(callback) {
      setTimeout(function () {
        console.log('开始摇')
        var random = Math.random()
        if (random > 0.5) {
          callback('大')
          return '大'
        } else {
          callback('小')
          return '小'
        }
      }, 1000)
    }
    var result = 摇色子(function(data){
      console.log(data)
    })
    console.log(result)
    

    结果是undefined,开始摇,大。接下来我们使用promise去接受异步的结果。

    console.log(1)
    function 买大() {
      console.log(2)
      return new Promise(function (resolve, reject) {  //
        console.log(3)
        setTimeout(function () {
          console.log(4)
          var random = Math.random()
          console.log(random)
          if (random > 0.5) {
            resolve()
          } else {
            reject()
          }
        }, 1000)
      })
    }
    console.log(5)
    var aPromise = 买大()
    console.log(6)
    aPromise.then(function () {
      console.log(7)
      console.log('win')
    }, function () {
      console.log(7)
      console.log('lose')
    })
    

    相关文章

      网友评论

          本文标题:promise学习

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