From d5a8570c0be9ce200062f730a11f9db8e905be58 Mon Sep 17 00:00:00 2001 From: Egist Li Date: Tue, 6 Oct 2015 18:31:37 +0800 Subject: [PATCH] Change Parse.Promise to be a class Also update is, error, as and when method to be static method with corresponding arguments. --- parse/parse-tests.ts | 13 +++++++++++++ parse/parse.d.ts | 12 ++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/parse/parse-tests.ts b/parse/parse-tests.ts index d373c064d6..d3af6be5c5 100644 --- a/parse/parse-tests.ts +++ b/parse/parse-tests.ts @@ -400,3 +400,16 @@ function test_view() { var model = Parse.User.current(); var view = new Parse.View(); } + +function test_promise() { + let resolved = Parse.Promise.as(true); + let rejected = Parse.Promise.error("an error object"); + Parse.Promise.when([resolved, rejected]).then(function() { + // success + }, function() { + // failed + }); + + // can check whether an object is a Parse.Promise object or not + Parse.Promise.is(resolved); +} diff --git a/parse/parse.d.ts b/parse/parse.d.ts index 85d3682f5f..2455c56b8f 100644 --- a/parse/parse.d.ts +++ b/parse/parse.d.ts @@ -72,14 +72,16 @@ declare namespace Parse { then(resolvedCallback: (value: T) => U, rejectedCallback?: (reason: any) => U): IPromise; } - interface Promise { + class Promise { + + static as(resolvedValue: any): Promise; + static error(error: any): Promise; + static is(possiblePromise: any): Boolean; + static when(promises: Promise[]): Promise; always(callback: Function): Promise; - as(): Promise; done(callback: Function): Promise; - error(): Promise; fail(callback: Function): Promise; - is(): Promise; reject(error: any): void; resolve(result: any): void; then(resolvedCallback: (value: T) => Promise, @@ -88,8 +90,6 @@ declare namespace Parse { rejectedCallback?: (reason: any) => IPromise): IPromise; then(resolvedCallback: (value: T) => U, rejectedCallback?: (reason: any) => U): IPromise; - - when(promises: Promise[]): Promise; } interface IBaseObject {