(feat) add timeout key, adjust angular callback