我正在使用breezejs與我的webapi進行即時通訊的項目。 我已經安裝使用,我可以一個新的用戶註冊一個簡單的登記表格:在breezejs我的EntityManagerBreezejs打字稿承諾沒有定義文件中的失敗方法
public addUser(user: IApiUser): void {
this.dataContext.entityManager.addEntity(this.dataContext.entityManager.createEntity("ApiUserEntity", user));
}
要寫入附加實體中的WebAPI我打電話調用SaveChanges()方法:
// Save any changes for this datacontext
return this.dataContext.entityManager.saveChanges().then((saveResult: breeze.SaveResult): breeze.SaveResult => {
return saveResult;
});
我從here 下載的breezejs的打字稿定義文件,但看的SaveChanges簽名:
saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): breeze.promises.IPromise<SaveResult>;
它返回類型的承諾:
breeze.promises.IPromise<SaveResult>;
現在,當我在定義文件中我得到以下接口檢查IPromise:
interface IPromise<T> {
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
catch<U>(onRejected: (reason: any) => U): IPromise<U>;
catch<U>(onRejected: (reason: any) => IPromise<U>): IPromise<U>;
finally(finallyCallback:() => any): IPromise<T>;
}
,我只是不明白爲什麼他們選擇來實現它喜歡這個。我使用的Q.js庫有一個失敗和.done方法等,但如果我輸入這些我的打字稿文件不會編譯,因爲接口不識別這些方法。
我已經找了具體的定義文件與Q.js微風,但他們似乎沒有存在。 Offcourse我可以編輯定義文件,但我想知道這是什麼原因設置它。