Adding Q.nbind function

This commit is contained in:
Michel Salib
2014-06-25 10:34:25 +02:00
parent 666f3ae8bb
commit 66ee214290
2 changed files with 24 additions and 2 deletions
+23 -2
View File
@@ -110,10 +110,31 @@ Q.allSettled([saveToDisk(), saveToCloud()]).spread(function (disk: any, cloud: a
}).done();
var nodeStyle = (input: string, cb: Function) => {
cb(null, input);
cb(null, input);
};
Q.nfapply(nodeStyle, ["foo"]).done((result: string) => {});
Q.nfcall(nodeStyle, "foo").done((result: string) => {});
Q.denodeify(nodeStyle)('foo').done((result: string) => {});
Q.nfbind(nodeStyle)('foo').done((result: string) => {});
Q.nfbind(nodeStyle)('foo').done((result: string) => {});
class Repo {
private items: any[] = [
{ name: 'Max', cute: false },
{ name: 'Annie', cute: true }
];
find(options: any): Q.Promise<any[]> {
var result = this.items;
for (var key in options) {
result = result.filter(i => i[key] == options[key]);
}
return Q(result);
}
}
var kitty = new Repo();
Q.nbind(kitty.find, kitty)({ cute: true }).done((kitties: any[]) => {});
Vendored
+1
View File
@@ -208,6 +208,7 @@ declare module Q {
export function mcall<T>(obj: any, functionName: string, ...args: any[]): Promise<T>;
export function denodeify<T>(nodeFunction: Function, ...args: any[]): (...args: any[]) => Promise<T>;
export function nbind<T>(nodeFunction: Function, thisArg: any, ...args: any[]): (...args: any[]) => Promise<T>;
export function nfbind<T>(nodeFunction: Function, ...args: any[]): (...args: any[]) => Promise<T>;
export function nfcall<T>(nodeFunction: Function, ...args: any[]): Promise<T>;
export function nfapply<T>(nodeFunction: Function, args: any[]): Promise<T>;