promise

初识Promise


var promiseCount = 0

function testPromise() {

   var thisPromiseCount = ++promiseCount

   var log = 0

   log = '开始(同步代码开始)'

  console.log(log)

  // 我们创建一个新的promise: 然后用'result'字符串完成这个promise (3秒后)

  var p1 = new Promise(function (resolve, reject) {

  // 完成函数带着完成(resolve)或拒绝(reject)promise的能力被执行

  log = thisPromiseCount + '' + 'Promise开始(异步代码开始)'

  console.log(log)

  // 这只是个创建异步完成的示例

   window.setTimeout(function () {

       // 我们满足(fullfil)了这个promise!

       // console.log('set')

       resolve(thisPromiseCount)

       }, Math.random() * 2000 + 1000)

});

// 定义当promise被满足时应做什么

p1.then(function (val) {

   // 输出一段信息和一个值

   log = val + '' + 'Promise被满足了(异步代码结束)'

   console.log(log)

});

log = thisPromiseCount + '' + '建立了Promise(同步代码结束)'

console.log(log)

}

上面是从MDN改写的例子,它的结果是

promise_第1张图片

最后一条是3秒后才跳出来的。即使没有定时器,p1.then(function (val)也是最后调用的。

你可能感兴趣的:(promise)