unwrap thennable
This commit is contained in:
parent
efae454bd4
commit
5ecc942abd
6 changed files with 34 additions and 4 deletions
|
|
@ -319,7 +319,8 @@ new function(window) {
|
|||
list.push(function(value) {
|
||||
try {
|
||||
var result = callback(value)
|
||||
next[method](result !== undefined ? result : value)
|
||||
if (result && typeof result.then == "function") result.then(next[method], error)
|
||||
else next[method](result !== undefined ? result : value)
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error && e.constructor !== Error) throw e
|
||||
|
|
@ -773,6 +774,20 @@ function testMithril(mock) {
|
|||
deferred.resolve("test")
|
||||
return value1 === undefined && value2 instanceof Error
|
||||
})
|
||||
test(function() {
|
||||
var deferred1 = m.deferred()
|
||||
var deferred2 = m.deferred()
|
||||
var value1, value2
|
||||
deferred1.promise.then(function(data) {
|
||||
value1 = data
|
||||
return deferred2.promise
|
||||
}).then(function(data) {
|
||||
value2 = data
|
||||
})
|
||||
deferred1.resolve(1)
|
||||
deferred2.resolve(2)
|
||||
return value1 === 1 && value2 === 2
|
||||
})
|
||||
|
||||
//m.sync
|
||||
test(function() {
|
||||
|
|
|
|||
2
archive/v0.1.3/mithril.min.js
vendored
2
archive/v0.1.3/mithril.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -319,7 +319,8 @@ new function(window) {
|
|||
list.push(function(value) {
|
||||
try {
|
||||
var result = callback(value)
|
||||
next[method](result !== undefined ? result : value)
|
||||
if (result && typeof result.then == "function") result.then(next[method], error)
|
||||
else next[method](result !== undefined ? result : value)
|
||||
}
|
||||
catch (e) {
|
||||
if (e instanceof Error && e.constructor !== Error) throw e
|
||||
|
|
|
|||
|
|
@ -245,6 +245,20 @@ function testMithril(mock) {
|
|||
deferred.resolve("test")
|
||||
return value1 === undefined && value2 instanceof Error
|
||||
})
|
||||
test(function() {
|
||||
var deferred1 = m.deferred()
|
||||
var deferred2 = m.deferred()
|
||||
var value1, value2
|
||||
deferred1.promise.then(function(data) {
|
||||
value1 = data
|
||||
return deferred2.promise
|
||||
}).then(function(data) {
|
||||
value2 = data
|
||||
})
|
||||
deferred1.resolve(1)
|
||||
deferred2.resolve(2)
|
||||
return value1 === 1 && value2 === 2
|
||||
})
|
||||
|
||||
//m.sync
|
||||
test(function() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue