Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IDeferred wrapper doesn't support some important promise chaining scenarios #439

Open
alexarg opened this issue Dec 14, 2015 · 1 comment

Comments

@alexarg
Copy link

alexarg commented Dec 14, 2015

jQuery promises implement Promises/A+ specification, and hence support this part of the spec:

2.2.7.1. #If either onFulfilled or onRejected returns a value x, run the Promise Resolution Procedure
see the documentation here:
https://promisesaplus.com/#point-41

ScriptSharp's IDeferred wrapper for the promise doesn't support returning values from onFulfilled callbacks at all, because Action and Callback are defined as delegates that always return void. Here are JavaScript example scenarios that won't be possible to implement in ScriptSharp because of this problem:

var a = $.Deferred();

a.promise()
  .then(function (result1) {
    return result1 * 5;
  })
  .then(function (result2) {
    return result2 + " as text";
  })
  .then(function (result3) {
    var b = $.Deferred();

    setTimeout(function () {
      b.resolve(result3 + " delayed");
    }, 100);

    return b.promise();
  })
  .then(function (result4) {
    alert(result4); // alerts "25 as text delayed"
  });

a.resolve(5);

JSFiddle: http://jsfiddle.net/alexarg/dzzj13h4

@alexarg alexarg changed the title jQuery deferred wrappers doesn't support proper promise chaining jQuery deferred wrappers don't support proper promise chaining Dec 14, 2015
@alexarg alexarg changed the title jQuery deferred wrappers don't support proper promise chaining jQuery deferred wrappers don't support some important scenarios of promise chaining Dec 14, 2015
@alexarg alexarg changed the title jQuery deferred wrappers don't support some important scenarios of promise chaining IDeferre wrapper doesn't support some important scenarios of promise chaining Dec 14, 2015
@alexarg alexarg changed the title IDeferre wrapper doesn't support some important scenarios of promise chaining IDeferred wrapper doesn't support some important scenarios of promise chaining Dec 14, 2015
@alexarg alexarg changed the title IDeferred wrapper doesn't support some important scenarios of promise chaining IDeferred wrapper doesn't support some important promise chaining scenarios Dec 14, 2015
@michaelaird
Copy link
Contributor

I believe the published Script.jQuery nuget package only supports jQuery up to version ~1.10 which i don't believe had support for the Promises/A+ specification.

Since Script# is no longer actively maintained, i would suggest you fork: https://github.com/nikhilk/scriptsharp/tree/cc/src/Libraries/jQuery make whatever changes are needed and publish a new nuget package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants