allow resolving w/ no value
This commit is contained in:
parent
67c5400d44
commit
46565f2e03
3 changed files with 27 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
|
|
||||||
var version = "0.1.13"
|
var version = "0.1.14"
|
||||||
|
|
||||||
var inputFolder = "./docs"
|
var inputFolder = "./docs"
|
||||||
var tempFolder = "./temp"
|
var tempFolder = "./temp"
|
||||||
|
|
|
||||||
13
mithril.js
13
mithril.js
|
|
@ -343,16 +343,17 @@ Mithril = m = new function app(window) {
|
||||||
return prop
|
return prop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var none = {}
|
||||||
m.deferred = function() {
|
m.deferred = function() {
|
||||||
var resolvers = [], rejecters = [], resolved, rejected
|
var resolvers = [], rejecters = [], resolved = none, rejected = none
|
||||||
var object = {
|
var object = {
|
||||||
resolve: function(value) {
|
resolve: function(value) {
|
||||||
if (resolved === undefined) resolved = value
|
if (resolved === none) resolved = value
|
||||||
for (var i = 0; i < resolvers.length; i++) resolvers[i](value)
|
for (var i = 0; i < resolvers.length; i++) resolvers[i](value)
|
||||||
resolvers.length = rejecters.length = 0
|
resolvers.length = rejecters.length = 0
|
||||||
},
|
},
|
||||||
reject: function(value) {
|
reject: function(value) {
|
||||||
if (rejected === undefined) rejected = value
|
if (rejected === none) rejected = value
|
||||||
for (var i = 0; i < rejecters.length; i++) rejecters[i](value)
|
for (var i = 0; i < rejecters.length; i++) rejecters[i](value)
|
||||||
resolvers.length = rejecters.length = 0
|
resolvers.length = rejecters.length = 0
|
||||||
},
|
},
|
||||||
|
|
@ -376,8 +377,8 @@ Mithril = m = new function app(window) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (resolved !== undefined) callback("resolve", success)(resolved)
|
if (resolved !== none) callback("resolve", success)(resolved)
|
||||||
else if (rejected !== undefined) callback("reject", error)(rejected)
|
else if (rejected !== none) callback("reject", error)(rejected)
|
||||||
else {
|
else {
|
||||||
resolvers.push(callback("resolve", success))
|
resolvers.push(callback("resolve", success))
|
||||||
rejecters.push(callback("reject", error))
|
rejecters.push(callback("reject", error))
|
||||||
|
|
@ -496,3 +497,5 @@ Mithril = m = new function app(window) {
|
||||||
|
|
||||||
if (typeof module != "undefined" && module !== null) module.exports = m
|
if (typeof module != "undefined" && module !== null) module.exports = m
|
||||||
if (typeof define == "function" && define.amd) define(function() {return m})
|
if (typeof define == "function" && define.amd) define(function() {return m})
|
||||||
|
|
||||||
|
;;;
|
||||||
|
|
@ -742,6 +742,24 @@ function testMithril(mock) {
|
||||||
deferred.reject(2)
|
deferred.reject(2)
|
||||||
return value === 1
|
return value === 1
|
||||||
})
|
})
|
||||||
|
test(function() {
|
||||||
|
//https://github.com/lhorie/mithril.js/issues/85
|
||||||
|
var deferred = m.deferred(), value
|
||||||
|
deferred.resolve()
|
||||||
|
deferred.promise.then(function(data) {
|
||||||
|
value = 1
|
||||||
|
})
|
||||||
|
return value === 1
|
||||||
|
})
|
||||||
|
test(function() {
|
||||||
|
//https://github.com/lhorie/mithril.js/issues/85
|
||||||
|
var deferred = m.deferred(), value
|
||||||
|
deferred.reject()
|
||||||
|
deferred.promise.then(null, function(data) {
|
||||||
|
value = 1
|
||||||
|
})
|
||||||
|
return value === 1
|
||||||
|
})
|
||||||
|
|
||||||
//m.sync
|
//m.sync
|
||||||
test(function() {
|
test(function() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue