fix(SyncAsyncResult): fix default async value (#10013)
This commit is contained in:
parent
ded518d47f
commit
6d02d2f107
|
@ -93,7 +93,7 @@ export function createDiTokenExpression(token: CompileTokenMetadata): o.Expressi
|
||||||
export class SyncAsyncResult<T> {
|
export class SyncAsyncResult<T> {
|
||||||
constructor(public syncResult: T, public asyncResult: Promise<T> = null) {
|
constructor(public syncResult: T, public asyncResult: Promise<T> = null) {
|
||||||
if (!asyncResult) {
|
if (!asyncResult) {
|
||||||
asyncResult = Promise.resolve(syncResult);
|
this.asyncResult = Promise.resolve(syncResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {fakeAsync, flushMicrotasks} from '@angular/core/testing/fake_async';
|
||||||
|
import {beforeEach, beforeEachProviders, ddescribe, describe, expect, iit, inject, it, xit} from '@angular/core/testing/testing_internal';
|
||||||
|
|
||||||
|
import {SyncAsyncResult} from '../src/util';
|
||||||
|
|
||||||
|
export function main() {
|
||||||
|
describe('util', () => {
|
||||||
|
describe('SyncAsyncResult', () => {
|
||||||
|
it('async value should default to Promise.resolve(syncValue)', fakeAsync(() => {
|
||||||
|
const syncValue = {};
|
||||||
|
const sar = new SyncAsyncResult(syncValue);
|
||||||
|
sar.asyncResult.then((v: any) => expect(v).toBe(syncValue));
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in New Issue