Bonjour à tous

J'essaie de réaliser une fonction toDataurl promise au sein de project angular qui permet de convertir une image d'assets en chaîne de base64.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
toDataURL(url){
      var promise = new Promise(function (extract) {
        var xhr = new XMLHttpRequest();
        xhr.open('get', url);
        xhr.responseType = 'blob';
        xhr.onload = function(){
          var fr = new FileReader();
          var test = fr.onload = function(){
 
            extract(this.result);
            return this.result;
 
          };
 
          fr.readAsDataURL(xhr.response); // async call
        };
 
        xhr.send();
      });
 
      return promise;
    }
Mais quand j'ai essayé d'attribuer son résultat à une variable globale base64result. Cette dernière se comporte comme une variable locale. Et je ne peux pas utiliser ce résultat dans les prochaines instructions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
   this.toDataURL(chemin).then((result) => {
          this.base64result=result
          console.log(result);
         });

Que dois-je faire?

Merci d'avance.