From 0680aead855449b4080f28d019268fc4eb34d3f6 Mon Sep 17 00:00:00 2001 From: Hanxing Yang Date: Mon, 20 Apr 2020 11:18:50 +0800 Subject: [PATCH] Performance optimization (#23) * avoid useless await, optimize validate performance * v1.0.10 --- package.json | 2 +- src/fieldState.ts | 8 ++++++-- src/formState.ts | 8 ++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b6a8edd..7871555 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formstate-x", - "version": "1.0.9", + "version": "1.0.10", "description": "Extended alternative for formstate", "repository": { "type": "git", diff --git a/src/fieldState.ts b/src/fieldState.ts index bdecb8e..f603c90 100644 --- a/src/fieldState.ts +++ b/src/fieldState.ts @@ -1,6 +1,6 @@ import { observable, computed, action, reaction, autorun, runInAction, when } from 'mobx' import { ComposibleValidatable, Validator, Validated, ValidationResponse, ValidateStatus } from './types' -import { applyValidators, debounce } from './utils' +import { applyValidators, debounce, isPromiseLike } from './utils' import Disposable from './disposable' /** @@ -206,7 +206,11 @@ export default class FieldState extends Disposable implements Composible return } - const error = await validation.response + const error = ( + isPromiseLike(validation.response) + ? await validation.response + : validation.response + ) if ( validation !== this.validation // 如果 validation 已过期,则不生效 diff --git a/src/formState.ts b/src/formState.ts index c5bba44..a9fdfb5 100644 --- a/src/formState.ts +++ b/src/formState.ts @@ -1,6 +1,6 @@ import { observable, computed, isArrayLike, isObservable, action, autorun, runInAction, when, reaction } from 'mobx' import { ComposibleValidatable, ValueOfFields, ValidationResponse, Validator, Validated, ValidateStatus } from './types' -import { applyValidators } from './utils' +import { applyValidators, isPromiseLike } from './utils' import Disposable from './disposable' /** Mode: object */ @@ -251,7 +251,11 @@ export default class FormState