我对视频MIME TYPE验证器有疑问
export const mimeTypeVid = (
control: AbstractControl
): Promise<{ [key: string]: any }> | Observable<{ [key: string]: any }> => {
if ((typeof control.value) === 'string') {
return of(null);
}
const file = control.value as File;
const fileReader = new FileReader();
const frObs = Observable.create(
(observer: Observer<{ [key: string]: any }>) => {
fileReader.addEventListener('loadend', () => {
let isValid = false;
console.log('file type '+file.type);
switch (file.type) {
case 'video/mp4':
isValid = true;
break;
case 'video/mp4v-es':
isValid = true;
break;
default:
isValid = false;
break;
}
console.log("Mime Vid Validators"+ isValid)
if (isValid) {
observer.next(null);
} else {
observer.next({ invalidMimeType: true });
}
observer.complete();
});
fileReader.readAsArrayBuffer(file);
}
);
return frObs;
};
此验证程序中的mp4 vids为IsValid true,但
当我尝试使表格有效时:
if(this.TestForm.get('video').valid)
它返回10的9次错误。
我具有与Image类型完全相同的验证器,并且效果很好。
有人可以解释我为什么会这样吗?
谢谢大家的帮助:)