validateが同期、非同期どちらでも動作するように

ここまで面倒にする必要があるのか??