while がうまくいかないので
add async