我希望我能得到一些帮助。我一直试图在一个角度应用程序中使用$ q,我试图用typescript描述。但我在挣扎。我试图创建一个类型定义文件,如下所示:
/// <reference path="../q/Q.d.ts" />
/// <reference path="../angularjs/angular.d.ts" />
declare module breeze.core {
export function extendQ(rootScope: ng.IScope, q: Q.Promise<any>): any;
export function to$q(qPromise: Q.Promise<any>, success: any, fail: any): any;
}
但javascript代码更像是c#扩展方法,我不知道如何用typescript实现类似的效果。请注意,我只有javascript的基本经验,而且微风对我来说完全是新的。
答案 0 :(得分:3)
$ q在angularjs类型定义here
中定义您不需要参考q.d.ts
答案 1 :(得分:2)
很高兴知道,@ basarat。
但更重要的是......我们已弃用to$q
,转而使用$q
在您的Breeze应用中承诺。那就对了。微风不再依赖于 Q.js (虽然这仍然是默认值)。
请改用Breeze.Angular.Q。它以NuGet package或直接from GitHub提供。请参阅Breeze Labs documentation for it。
您只需将Breeze配置为使用应用模块的$q
实例,然后针对$q
承诺编写您的微风代码。例如
var promise = entityManager
.executeQuery(query)
.then(successCallback)
.catch(failCallback)
.finally(finalCallback);