firemail
标题:
Promise用法
[打印本页]
作者:
hechengjin
时间:
2016-3-26 17:01
标题:
Promise用法
'use strict'
let Deferred = function () {
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve
this.reject = reject
})
this.promise.canceled = false
this.promise.cancelers = []
this.promise.cancel = () => {
this.promise.canceled = true
for (let canceler of this.promise.cancelers) {
try {
canceler()
} catch (e) {
console.log(e + e.stack)
}
}
}
this.then = this.promise.then.bind(this.promise)
this.catch = this.promise.catch.bind(this.promise)
}
exports.defer = () => new Deferred()
复制代码
第一次查询
let loadListDeferred = defer()
执行查询
loadListDeferred.then(() => {
查询结果清除 ----这里在执行第二次查询时才会执行到
})
第二次查询
if (oadListDeferred) {
loadListDeferred.resolve() ----触发上面的then操作
}
作者:
hechengjin
时间:
2016-4-15 12:11
let loadDeferred = defer()
let finished = false
spawn(function * () {
while (true) {
console.log('777777777777777')
// yield WinJS.Promise.any([sleep(1000), loadDeferred])
yield sleep(1000)
loadDeferred.then(() => {
finished = true
})
if (finished) {
break
}
}
})
top.tryCloseWindow = DoCommandClose.bind(top)
function DoCommandClose () {
let ret = false
loadDeferred.resolve()
console.log('=======================')
top.close()
return ret
}
欢迎光临 firemail (http://firemail.wang:8088/)
Powered by Discuz! X3