chained promises inherit synchronous flag and error expose flag