Side navigation
#9446 closed bug (fixed)
Opened May 27, 2011 06:19PM UTC
Closed July 01, 2011 12:19AM UTC
Chained Deferred.pipe functions don't keep the original context from Deferred.resolveWith
| Reported by: | exogen@gmail.com | Owned by: | jaubourg |
|---|---|---|---|
| Priority: | low | Milestone: | 1.next |
| Component: | deferred | Version: | 1.6.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
If I chain multiple pipes and use resolveWith like so...
var defer = $.Deferred();
var promise = defer.pipe(function(x) {
// will be
return x * 2;
}).pipe(function(x) {
// will be ?
return x - 1;
});
defer.resolveWith(obj, [5]);
...the first pipe function will get this set to obj as I expect, but the next function in the chain will get its context set back to the Deferred object. I would expect the context to be passed along the chain, so that the second pipe function also gets this set to defer.
Attachments (0)
Change History (3)
Changed May 31, 2011 04:21AM UTC by comment:1
| cc: | → jauborg |
|---|---|
| component: | unfiled → ajax |
| priority: | undecided → low |
Changed June 05, 2011 02:25AM UTC by comment:2
| cc: | jauborg |
|---|---|
| component: | ajax → deferred |
| owner: | → jaubourg |
| status: | new → assigned |
Changed July 01, 2011 12:19AM UTC by comment:3
| resolution: | → fixed |
|---|---|
| status: | assigned → closed |
Fixes #9446. Context is properly propagated using pipe. If context was the original deferred, then context is updated to next deferred in the chain. Unit tests added.
Changeset: 139135a98aab1c422e5ae05b026535a40d58328f