wait for all promises to resolve and save results including errors