advanced understand about setTimeout