0

我是Angular 4的新手,我对JavaScript\TypeScript不太感兴趣,我对在教程中找到的这个示例有以下疑问。

它与自定义表单验证器的实现有关,但我的怀疑更多是关于ObservablePromise对象。

所以我有这样的事情:

import {Form, FormControl} from '@angular/forms';
import {Observable} from 'rxjs/Observable';

export class CustomValidators {
  static asyncInvalidProjectName(control: FormControl): Promise<any> | Observable<any> {
    const promise = new Promise((resolve, reject) => {
      setTimeout(() => {
        if (control.value === 'Testproject') {
          resolve({'invalidProjectName': true});
        } else {
          resolve(null);
        }
      }, 2000);
    })
    return promise;
  }
}

asyncInvalidProjectName ()方法实现了我的自定义验证器的逻辑。

我的疑问是:

1)在我看来,这个方法可以返回一个Promise对象或一个Observable对象。

为什么?在我看来,它总是返回一个Promise对象,表示表单中的输入是否有效。为什么在签名中似乎也可以返回一个Observable

2) 究竟什么代表了Promise对象,与Observable有什么区别?(据我所知,Observable 用于对事件变化做出反应)

4

0 回答 0