Verheißung zurück [Objekt-Versprechen]

Ich versuche zu tun, einen basic-check, um zu sehen, wenn ein Bild der Netzhaut und hat ein portrait-Verhältnis. Ich habe alle, die überprüfung der Funktionalität arbeiten völlig in Ordnung. Mein Problem ist, dass in die Letzte Funktion soll die Rückkehr der booleschen ich von meinen Prüfungen, es wird zurückkehren [object Promise]. Ich habe keine Ahnung, warum das nicht wieder mein booleschen wenn ich lösen die Versprechen.

Wenn ich .then(res => console.log(res)) es gibt meines boolean Antwort, aber die Funktion getImageMeta() liefert, dass das Versprechen nur die Renditen, die [object Promise] die macht mich denken, dass das Versprechen nicht wirklich aufgelöst wird.

Könnte ich etwas Hilfe, das wäre toll!

/************************************
   Check if image is retina portrait
************************************/
const checkIfPortrait = src => !isRetina(src) ? false : getImageMeta(src).then(res => res);
 const isRetina        = src => src.indexOf('@2x') !== -1;
 const isPortrait      = ({ naturalWidth, naturalHeight }) => naturalHeight > naturalWidth ? true : false;

 function getImageMeta (src) {
    const img = new Image();
    img.src = src;

    return new Promise((resolve, reject) => {
      return img.addEventListener("load", function () {
         return resolve(isPortrait(this));
      }, false);
    });
  }


 export { checkIfPortrait }

Dies ist, wie rufe ich die Funktion:

<img src={media[i].image} alt={media[i].alt} data-portrait={checkIfPortrait(media[i].image)} />
Haben Sie einen Blick auf MDN - Mit Verspricht um mehr zu erfahren über verspricht. .then(res => res) ist überflüssig, Sie brauchen es nicht. "Mein Problem ist, dass in der endgültigen Funktion zurückgeben sollte, die booleschen Operatoren" Das ist nicht möglich. Sie können nicht konvertieren eines asynchronen Prozess in einer synchronen.

InformationsquelleAutor Brady Edgar | 2017-10-12

Schreibe einen Kommentar