ReferenceError: lösen ist, wird nicht definiert

Habe ich eine Funktion aufrufen, die google speech api. Sieht alles gut ist, aber ich kann nicht finden, warum sein gibt mir den Fehler. Ich bin Anfänger mit Knoten und verspricht so nicht sicher, warum dieser Fehler erscheint.

ReferenceError: lösen ist, wird nicht definiert index.js:57

Das problem ist in diesem Teil des Codes:

  return speech
    .longRunningRecognize(responses)
    .then(function(results) {
      var operation = responses[0];
      console.log("Operation: ", operation);
      return operation.promise();
    })
    .then(function(responses) {
      resolve(responses[0]);
      console.log("Result: ", JSON.stringify(responses[0]));
    })

Wo die Verheißung

Betrieb.Versprechen() (Zeile 57)

nicht gelöst werden kann. Will es beheben
das Versprechen, aber es sieht aus wie es nicht finden können, die lösen-Funktion.

Die google-api funktioniert wie folgt:

  • Als erstes macht man einen api-Aufruf zum hochladen Ihrer Daten und starten Sie den Vorgang.
  • Dies gibt Ihnen wieder eine operation name.
  • Dieser name sollte verwendet werden, anschließend erhalten Sie das Ergebnis, wenn das Ergebnis fertig ist (dauert nur max 30 sec)

Habe ich das Gefühl, alle seine arbeiten, der Anruf, die Antwort kommt zurück. Der code wartet und dann möchte es zu beheben, aber es kann nicht...

Mein code ist wie folgt (eine cloud-Funktion)

  exports.transcribeAudio = functions.storage.object().onChange(event => {
  const object = event.data;
  const filePath = object.name;
  const fileName = filePath.split("/").pop();
  const fileBucket = object.bucket;
  const bucket = gcs.bucket(fileBucket);
  const tempFilePath = path.join(os.tmpdir(), fileName);

  //Exit if this is triggered on a file that is not an image.
  //Get the file name.
  //const fileName = path.basename(filePath);
  console.log(filePath + " name: " + fileName);
  //Exit if the image is already a thumbnail.
  if (!filePath.startsWith("ucl-flac-audio")) {
    console.log("Only flac-audio need to be converted");
    return true;
  }
  //Exit if this is a move or deletion event.
  if (object.resourceState === "not_exists") {
    console.log("This is a deletion event.");
    return true;
  }

  return Promise.resolve()
    .then(() => {
      const audioFilename = "gs://" + fileBucket + "/" + filePath;
      console.log(audioFilename);
      const request = {
        config: {
          encoding: "FLAC",
          languageCode: "fr-FR"
        },
        audio: {
          uri: audioFilename
        }
      };

      return speech
        .longRunningRecognize(request)
        .then(function(responses) {
          var operation = responses[0];
          console.log("Operation: ", operation);
          return operation.promise();
        })
        .then(function(responses) {
          resolve(responses[0]);
          console.log("Result: ", JSON.stringify(responses[0]));
        })
        .catch(function(err) {
          console.error("Failed to get transcript.", err);
          //   reject(err);
        });
    })
    .catch(err => {
      return Promise.reject(err);
    });
});
Sie sind bereits in einem .dann Rückruf. Nur return responses[0], und das Versprechen erstellt .dann wird aufgelöst, dass Wert.
btw: .catch(err => { return Promise.reject(err); }); ist völlig sinnlos. Löschen Sie diese Zeilen.

InformationsquelleAutor Koen | 2017-10-09

Schreibe einen Kommentar