diff --git a/q/Q-tests.ts b/q/Q-tests.ts
index 02a409b6b..f982ae8d6 100644
--- a/q/Q-tests.ts
+++ b/q/Q-tests.ts
@@ -1,5 +1,7 @@
///
+import q = module('q');
+
Q(8).then(x => console.log(x.toExponential()));
var delay = function (delay: number) {
@@ -12,6 +14,14 @@ Q.when(delay(1000), function () {
console.log('Hello, World!');
});
+Q.delay(Q(8), 1000).then(x => x.toExponential());
+Q.delay(8, 1000).then(x => x.toExponential());
+Q.delay(Q("asdf"), 1000).then(x => x.length);
+Q.delay("asdf", 1000).then(x => x.length);
+
+var eventualAdd = Q.promised((a: number, b: number) => a + b);
+eventualAdd(Q(1), Q(2)).then(x => x.toExponential());
+
var eventually = function (eventually) {
return Q.delay(eventually, 1000);
};
@@ -48,11 +58,4 @@ Q.allResolved([])
var exception = promise.valueOf().exception;
}
})
-});
-
-var initialVal: any;
-var funcs = ['foo', 'bar', 'baz', 'qux'];
-var result = Q.resolve(initialVal);
-funcs.forEach(function (f) {
- result = result.then(f);
});
\ No newline at end of file
diff --git a/q/Q.d.ts b/q/Q.d.ts
index 951f615d0..56a070b35 100644
--- a/q/Q.d.ts
+++ b/q/Q.d.ts
@@ -16,22 +16,23 @@ declare module Q {
interface Promise {
fail(errorCallback: Function): Promise;
- fin(finallyCallback: Function): Promise;
+ fin(finallyCallback: Function): Promise;
+ finally(finallyCallback: Function): Promise;
then(onFulfilled?: (value: T) => any, onRejected?: (reason) => any, onProgress?: Function): Promise;
spread(onFulfilled: Function, onRejected?: Function): Promise;
catch(onRejected: Function): Promise;
progress(onProgress: Function): Promise;
- done(onFulfilled?: Function, onRejected?: Function, onProgress?: Function): Promise;
+ done(onFulfilled?: Function, onRejected?: Function, onProgress?: Function): void;
get(propertyName: String): Promise;
set(propertyName: String, value: any): Promise;
delete(propertyName: String): Promise;
post(methodName: String, args: any[]): Promise;
invoke(methodName: String, ...args: any[]): Promise;
- keys(): Promise;
+ keys(): Promise;
fapply(args: any[]): Promise;
fcall(method: Function, ...args: any[]): Promise;
- timeout(ms: number): Promise;
- delay(ms: number): Promise;
+ timeout(ms: number, message?): Promise;
+ delay(ms: number): Promise;
isFulfilled(): bool;
isRejected(): bool;
isPending(): bool;
@@ -48,22 +49,25 @@ declare module Q {
export function all(promises: Promise[]): Promise;
export function allResolved(promises: Promise[]): Promise;
export function spread(onFulfilled: Function, onRejected: Function): Promise;
- export function timeout(ms: number): Promise;
- export function delay(ms: number): Promise;
- export function delay(value: any, ms: number): Promise;
- export function isFulfilled(): bool;
- export function isRejected(): bool;
- export function isPending(): bool;
- export function valueOf(): any;
+ export function timeout(promise: Promise, ms: number, message?): Promise;
+ export function delay(promise: Promise, ms: number): Promise;
+ export function delay(value: T, ms: number): Promise;
+ export function isFulfilled(promise: Promise): bool;
+ export function isRejected(promise: Promise): bool;
+ export function isPending(promise: Promise): bool;
+ export function valueOf(promise: Promise): T;
export function defer(): Deferred;
- export function reject(): Promise;
- export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Promise;
- export function isPromise(value: any): bool;
- export function async(generatorFunction: any): Deferred;
- export function nextTick(callback: Function);
- export var oneerror: any;
- export var longStackJumpLimit: number;
- export function resolve(object?: Promise);
+ export function reject(reason?): Promise;
+ export function promise(factory: { resolve: Function; reject: Function; notify: Function; }): Promise;
+ export function promised(callback: (...any) => T): (...any) => Promise;
+ export function isPromise(object): bool;
+ export function isPromiseAlike(object): bool;
+ export function isPending(object): bool;
+ export function async(generatorFunction: any): (...args) => Promise;
+ export function nextTick(callback: Function): void;
+ export var oneerror: () => void;
+ export var longStackSupport: bool;
+ export function resolve(object): Promise;
}
declare module "q" {
diff --git a/q/q.module-tests.ts b/q/q.module-tests.ts
deleted file mode 100644
index a589ca1d6..000000000
--- a/q/q.module-tests.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-///
-///
-///
-
-import q = module("q");
-import fs = module("fs");
-
-q(8).then(x => console.log(x.toExponential()));
-
-var delay = function (delay) {
- var d = q.defer();
- setTimeout(d.resolve, delay);
- return d.promise;
-};
-
-q.when(delay(1000), function () {
- console.log('Hello, World!');
-});
-
-var eventually = function (eventually) {
- return q.delay(eventually, 1000);
-};
-
-var x = q.all([1, 2, 3].map(eventually));
-q.when(x, function (x) {
- console.log(x);
-});
-
-q.all([
- eventually(10),
- eventually(20)
-])
-.spread(function (x, y) {
- console.log(x, y);
-});
-
-q.fcall(function () { })
-.then(function () { })
-.then(function () { })
-.then(function () { })
-.then(function (value4) {
- // Do something with value4
-}, function (error) {
- // Handle any error from step1 through step4
-}).done();
-
-q.allResolved([]).then(function (promises: Q.Promise[]) {
- promises.forEach(function (promise) {
- if (promise.isFulfilled()) {
- var value = promise.valueOf();
- } else {
- var exception = promise.valueOf().exception;
- }
- })
-});
-
-var initialVal: any;
-var funcs = ['foo', 'bar', 'baz', 'qux'];
-var result = q.resolve(initialVal);
-funcs.forEach(function (f) {
- result = result.then(f);
-});
-
-var replaceText = (text: string) => text.replace("a", "b");
-
-q.nfcall(fs.readFile, "foo.txt", "utf-8").then(replaceText);
-
-q.ninvoke(fs, "readFile", "foo.txt", "utf-8").then(replaceText);
-
-var deferred = q.defer();
-fs.readFile("foo.txt", "utf-8", deferred.makeNodeResolver());
-deferred.promise.then(replaceText);
-
-var readFile = q.nfbind(fs.readFile);
-readFile("foo.txt", "utf-8").then(replaceText);
\ No newline at end of file