Get labels from fields ordered on block plugin - Drupal 8
I solved it loading the field definition using entityManager, I got the weight attribute, and then ordered the labels by weight.

$node = $this-&gt;requestStack-&gt;getCurrentRequest()-&gt;get('node');
$bundle = $node-&gt;getType();
$view_mode = 'full';

$fields = [];
foreach($this-&gt;entityManager-&gt;getFieldDefinitions('node', $bundle)  as $field_name =&gt; $field_definition) {
  if($field_definition-&gt;getType() == 'entity_reference_revisions') {
    $field_name = $field_definition-&gt;getName();
    $element = $node-&gt;$field_name-&gt;view($view_mode);
    $fields[] = [
      'name' =&gt; $field_name,
      'label' =&gt; $field_definition-&gt;getLabel(),
      'weight' =&gt; $element['#weight'],
    ];

  }
}

usort($fields, [$this, 'sortByWeight']);