Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
e7fdda98
Commit
e7fdda98
authored
Jan 06, 2013
by
nanto_vi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Propagete context of returned deferred object in Deferred.then(). Fixes #13160
parent
c6115042
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
3 deletions
+21
-3
deferred.js
src/deferred.js
+4
-2
deferred.js
test/unit/deferred.js
+17
-1
No files found.
src/deferred.js
View file @
e7fdda98
...
@@ -35,7 +35,9 @@ jQuery.extend({
...
@@ -35,7 +35,9 @@ jQuery.extend({
newDefer
[
action
+
"With"
](
this
===
promise
?
newDefer
.
promise
()
:
this
,
[
returned
]
);
newDefer
[
action
+
"With"
](
this
===
promise
?
newDefer
.
promise
()
:
this
,
[
returned
]
);
}
}
}
:
}
:
newDefer
[
action
]
function
()
{
newDefer
[
action
+
"With"
](
this
===
promise
?
newDefer
.
promise
()
:
this
,
arguments
);
}
);
);
});
});
fns
=
null
;
fns
=
null
;
...
@@ -72,7 +74,7 @@ jQuery.extend({
...
@@ -72,7 +74,7 @@ jQuery.extend({
// deferred[ resolve | reject | notify ]
// deferred[ resolve | reject | notify ]
deferred
[
tuple
[
0
]
]
=
function
()
{
deferred
[
tuple
[
0
]
]
=
function
()
{
deferred
[
tuple
[
0
]
+
"With"
](
promise
,
arguments
);
deferred
[
tuple
[
0
]
+
"With"
](
this
===
deferred
?
promise
:
this
,
arguments
);
return
this
;
return
this
;
};
};
deferred
[
tuple
[
0
]
+
"With"
]
=
list
.
fireWith
;
deferred
[
tuple
[
0
]
+
"With"
]
=
list
.
fireWith
;
...
...
test/unit/deferred.js
View file @
e7fdda98
...
@@ -273,7 +273,7 @@ test( "jQuery.Deferred.then - deferred (progress)", function() {
...
@@ -273,7 +273,7 @@ test( "jQuery.Deferred.then - deferred (progress)", function() {
test
(
"jQuery.Deferred.then - context"
,
function
()
{
test
(
"jQuery.Deferred.then - context"
,
function
()
{
expect
(
4
);
expect
(
7
);
var
context
=
{};
var
context
=
{};
...
@@ -284,6 +284,12 @@ test( "jQuery.Deferred.then - context", function() {
...
@@ -284,6 +284,12 @@ test( "jQuery.Deferred.then - context", function() {
strictEqual
(
value
,
6
,
"proper value received"
);
strictEqual
(
value
,
6
,
"proper value received"
);
});
});
jQuery
.
Deferred
().
resolve
().
then
(
function
()
{
return
jQuery
.
Deferred
().
resolveWith
(
context
);
}).
done
(
function
()
{
strictEqual
(
this
,
context
,
"custom context of returned deferred correctly propagated"
);
});
var
defer
=
jQuery
.
Deferred
(),
var
defer
=
jQuery
.
Deferred
(),
piped
=
defer
.
then
(
function
(
value
)
{
piped
=
defer
.
then
(
function
(
value
)
{
return
value
*
3
;
return
value
*
3
;
...
@@ -295,6 +301,16 @@ test( "jQuery.Deferred.then - context", function() {
...
@@ -295,6 +301,16 @@ test( "jQuery.Deferred.then - context", function() {
strictEqual
(
this
,
piped
,
"default context gets updated to latest promise in the chain"
);
strictEqual
(
this
,
piped
,
"default context gets updated to latest promise in the chain"
);
strictEqual
(
value
,
6
,
"proper value received"
);
strictEqual
(
value
,
6
,
"proper value received"
);
});
});
var
defer2
=
jQuery
.
Deferred
(),
piped2
=
defer2
.
then
();
defer2
.
resolve
(
2
);
piped2
.
done
(
function
(
value
)
{
strictEqual
(
this
,
piped2
,
"default context gets updated to latest promise in the chain (without passing function)"
);
strictEqual
(
value
,
2
,
"proper value received (without passing function)"
);
});
});
});
test
(
"jQuery.when"
,
function
()
{
test
(
"jQuery.when"
,
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment