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) {
|
list.push(function(value) {
|
||||||
try {
|
try {
|
||||||
var result = callback(value)
|
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) {
|
catch (e) {
|
||||||
if (e instanceof Error && e.constructor !== Error) throw e
|
if (e instanceof Error && e.constructor !== Error) throw e
|
||||||
|
|
@ -773,6 +774,20 @@ function testMithril(mock) {
|
||||||
deferred.resolve("test")
|
deferred.resolve("test")
|
||||||
return value1 === undefined && value2 instanceof Error
|
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
|
//m.sync
|
||||||
test(function() {
|
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) {
|
list.push(function(value) {
|
||||||
try {
|
try {
|
||||||
var result = callback(value)
|
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) {
|
catch (e) {
|
||||||
if (e instanceof Error && e.constructor !== Error) throw e
|
if (e instanceof Error && e.constructor !== Error) throw e
|
||||||
|
|
|
||||||
|
|
@ -245,6 +245,20 @@ function testMithril(mock) {
|
||||||
deferred.resolve("test")
|
deferred.resolve("test")
|
||||||
return value1 === undefined && value2 instanceof Error
|
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
|
//m.sync
|
||||||
test(function() {
|
test(function() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue