fix(Dart1.8): Promise handling

This commit is contained in:
Victor Berchet 2014-12-01 20:06:21 +01:00
parent 0703ee526c
commit fc2181ec4e
2 changed files with 6 additions and 4 deletions

View File

@ -203,9 +203,10 @@ class _AsyncInjectorStrategy {
var deps = this.injector._resolveDependencies(key, binding, true); var deps = this.injector._resolveDependencies(key, binding, true);
var depsPromise = PromiseWrapper.all(deps); var depsPromise = PromiseWrapper.all(deps);
var promise = PromiseWrapper.then(depsPromise, null, (e) => this._errorHandler(key, e)). var promise = PromiseWrapper
then(deps => this._findOrCreate(key, binding, deps)). .then(depsPromise, null, (e) => this._errorHandler(key, e))
then(instance => this._cacheInstance(key, instance)); .then(deps => this._findOrCreate(key, binding, deps))
.then(instance => this._cacheInstance(key, instance));
this.injector._setInstance(key, new _Waiting(promise)); this.injector._setInstance(key, new _Waiting(promise));
return promise; return promise;

View File

@ -12,11 +12,12 @@ class PromiseWrapper {
return new Future.error(obj); return new Future.error(obj);
} }
static Future all(List<Future> promises){ static Future<List> all(List<Future> promises){
return Future.wait(promises); return Future.wait(promises);
} }
static Future then(Future promise, Function success, Function onError){ static Future then(Future promise, Function success, Function onError){
if (success == null) return promise.catchError(onError);
return promise.then(success, onError: onError); return promise.then(success, onError: onError);
} }
} }