Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果承诺成功,angularjs将返回一个承诺_Angularjs_Typescript_Promise - Fatal编程技术网

如果承诺成功,angularjs将返回一个承诺

如果承诺成功,angularjs将返回一个承诺,angularjs,typescript,promise,Angularjs,Typescript,Promise,基本上,我尝试在数据库中创建一个假日,然后刷新日历,但是在假日被更新之前,它会被刷新,并且我的新日历不会被显示,所以我怎么能等到put方法完成,然后返回一个承诺呢 这是我的方法 服务 控制器 由于createHoliday是异步执行的,因此它不会等待this.org.put()的响应来执行then(),因此它不会返回任何内容…您将想看看我是否理解了这个问题,但是您可能想将that.$q.resolve包装在then()中?像this.org.put().then(()=>that.$q.reso

基本上,我尝试在数据库中创建一个假日,然后刷新日历,但是在假日被更新之前,它会被刷新,并且我的新日历不会被显示,所以我怎么能等到put方法完成,然后返回一个承诺呢

这是我的方法

服务 控制器
由于
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');
});