Merge pull request #599 from mindeavor/propify-catch
Add `catch` to promise-like objects
This commit is contained in:
commit
93105745d8
2 changed files with 28 additions and 0 deletions
|
|
@ -859,6 +859,7 @@ var m = (function app(window, undefined) {
|
|||
prop.then = function(resolve, reject) {
|
||||
return propify(promise.then(resolve, reject), initialValue)
|
||||
};
|
||||
prop.catch = prop.then.bind(null, null)
|
||||
return prop
|
||||
}
|
||||
//Promiz.mithril.js | Zolmeister | MIT
|
||||
|
|
|
|||
|
|
@ -3872,6 +3872,12 @@ function testMithril(mock) {
|
|||
mock.XMLHttpRequest.$instances.pop().onreadystatechange()
|
||||
return prop().message === "error occurred" && error().message === "error occurred"
|
||||
})
|
||||
test(function() {
|
||||
var error = m.prop("no error")
|
||||
var prop = m.request({method: "GET", url: "test", deserialize: function() {throw new Error("error occurred")}}).catch(error)
|
||||
mock.XMLHttpRequest.$instances.pop().onreadystatechange()
|
||||
return prop().message === "error occurred" && error().message === "error occurred"
|
||||
})
|
||||
test(function() {
|
||||
var error = m.prop("no error"), exception
|
||||
var prop = m.request({method: "GET", url: "test", deserialize: function() {throw new TypeError("error occurred")}}).then(null, error)
|
||||
|
|
@ -4052,6 +4058,13 @@ function testMithril(mock) {
|
|||
deferred.reject("test")
|
||||
return value === "test"
|
||||
})
|
||||
test(function() {
|
||||
var value
|
||||
var deferred = m.deferred()
|
||||
deferred.promise.catch(function(data) {value = data})
|
||||
deferred.reject("test")
|
||||
return value === "test"
|
||||
})
|
||||
test(function() {
|
||||
var value
|
||||
var deferred = m.deferred()
|
||||
|
|
@ -4059,6 +4072,13 @@ function testMithril(mock) {
|
|||
deferred.reject("test")
|
||||
return value === "foo"
|
||||
})
|
||||
test(function() {
|
||||
var value
|
||||
var deferred = m.deferred()
|
||||
deferred.promise.catch(function(data) {return "foo"}).then(function(data) {value = data})
|
||||
deferred.reject("test")
|
||||
return value === "foo"
|
||||
})
|
||||
test(function() {
|
||||
var value1, value2
|
||||
var deferred = m.deferred()
|
||||
|
|
@ -4224,6 +4244,13 @@ function testMithril(mock) {
|
|||
deferred1.resolve("test")
|
||||
return value[0] === "test" && value[1] === "foo"
|
||||
})
|
||||
test(function() {
|
||||
var value
|
||||
var deferred = m.deferred()
|
||||
m.sync([deferred.promise]).catch(function(data) {value = data})
|
||||
deferred.reject("fail")
|
||||
return value[0] === "fail"
|
||||
})
|
||||
test(function() {
|
||||
var value = 1
|
||||
m.sync([]).then(function() {value = 2})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue