如果承诺成功,angularjs将返回一个承诺
基本上,我尝试在数据库中创建一个假日,然后刷新日历,但是在假日被更新之前,它会被刷新,并且我的新日历不会被显示,所以我怎么能等到put方法完成,然后返回一个承诺呢 这是我的方法 服务 控制器如果承诺成功,angularjs将返回一个承诺,angularjs,typescript,promise,Angularjs,Typescript,Promise,基本上,我尝试在数据库中创建一个假日,然后刷新日历,但是在假日被更新之前,它会被刷新,并且我的新日历不会被显示,所以我怎么能等到put方法完成,然后返回一个承诺呢 这是我的方法 服务 控制器 由于createHoliday是异步执行的,因此它不会等待this.org.put()的响应来执行then(),因此它不会返回任何内容…您将想看看我是否理解了这个问题,但是您可能想将that.$q.resolve包装在then()中?像this.org.put().then(()=>that.$q.reso
由于
createHoliday
是异步执行的,因此它不会等待this.org.put()
的响应来执行then()
,因此它不会返回任何内容…您将想看看我是否理解了这个问题,但是您可能想将that.$q.resolve
包装在then()中?像this.org.put().then(()=>that.$q.resolve(..)
?@rpadovani我试过了,如果你将解析放入then(),那么createHoliday将不返回任何内容,因为请求需要一些时间,javascript会执行asynchronously@Bergi,我的建筑商没有回复承诺,只是初始化而已variable@AbdallahSamman:无论它是返回承诺还是只是异步初始化实例都无关紧要,您仍然应该阅读答案并遵循其建议。或者,看一看,你会想看一看我不确定我是否理解了这个问题,但也许你想把that.$q.resolve
包装成then()
?像this.org.put().then(()=>that.$q.resolve(..)
?@rpadovani我试过了,如果你将解析放入then(),那么createHoliday将不返回任何内容,因为请求需要一些时间,javascript会执行asynchronously@Bergi,我的建筑商没有回复承诺,只是初始化而已variable@AbdallahSamman:无论它是返回承诺还是只是异步初始化实例都无关紧要,您仍然应该阅读答案并遵循其建议。或者看看和
class CalendarService implements ICalendarService {
public static $inject = [
'$state',
'$q',
'Api',
'Orgs',
'User'
];
public org
constructor(private $state: IStateService, private $q: any, private Api: any, private Org: IOrgsService, private User: IUserService) {
var that: any = this
Org.getMyOrg().then(org => {
that.org = org
})
}
public createHoliday = (event: IEvent) => {
var that = this
this.org.put()
return that.$q.resolve({
id: maxid+1,
title: event.title,
calendar_type: "holdays",
start_date: event.startDate.toISOString().slice(0,10),
end_date: event.endDate.toISOString().slice(0,10),
description: event.description
})
}
public addEvent = (form: ng.IFormController) => {
var promise = this.Calendar.createHoliday(this.event)
promise.then((response: restangular.IResponse) => {
this.$uibModalInstance.close(response);
});
};
modalInstance.result.then((event: any) => {
this.uiCalendarConfig.calendars.currentCalendar.fullCalendar('refetchEvents');
});