初识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改写的例子,它的结果是
最后一条是3秒后才跳出来的。即使没有定时器,p1.then(function (val)也是最后调用的。