获得承诺而不是ZoneAwarePromise

时间:2019-09-26 03:11:00

标签: angular

我在下面编写了代码,任何人都可以帮助获得Promise而不是ZoneAwarePromise

MyFunction(): Promise < any > () {
    let promise = new Promise((resolve) => {
        if (this.domainServerCache
            && (this.domainServerCache.domainFqdn === selectedFqdn)) {
            resolve(this.domainServerCache);
        } else if (selectedFqdn) {
            const url = `drarest/domains/get?domainFqdn=${selectedFqdn}`;
            this.http.post < any > (url, something).toPromise().then(
                (resp) => {
                    console.log('result', resp);                            
                    this.loadDomainSubject
                        .next(resp.domain.domainAdminsGroupPath);
                    this.domainServerCache = {
                        'domainFqdn': selectedFqdn,
                        ...resp
                    };
                    this.loadDomainSubject.complete();
                    resolve(this.domainServerCache);
                }
            );
        }
    });
    console.log(promise);
    return promise;
}

1 个答案:

答案 0 :(得分:1)

我认为有一种更好的方法可以重写

MyFunction() {
    return new Promise((resolve) => {
        if (this.domainServerCache && (this.domainServerCache.domainFqdn === selectedFqdn)) { 
            resolve(this.domainServerCache); 
        } else if (selectedFqdn) {
            const url = `drarest/domains/get?domainFqdn=${selectedFqdn}`;
            this.http.post<any>(url, something).toPromise().then(
                (resp) => {
                    console.log('result', resp);
                    this.loadDomainSubject.next(resp.domain.domainAdminsGroupPath);
                    this.domainServerCache = {'domainFqdn': selectedFqdn, ...resp};
                    this.loadDomainSubject.complete();
                    resolve(this.domainServerCache);
                }
            );
        }
    })
}