2016-08-11 1 views
1

Ich benutze Fine-Uploader (traditionelle Version), um Benutzern das Hochladen von Dateien auf unseren eigenen Server zu ermöglichen. Die Herausforderung, die ich jetzt habe, ist, dass ich vor dem normalen Hochladen einen Token vom Server bekommen soll. Das Token wird mit jedem Upload-Request/Chunk gesendet. Dieses Token ist für jede Datei eindeutig. Daher kann dieser Schritt "Token anfordern" nur gestartet werden, nachdem der Benutzer eine Datei ausgewählt hat.Fine-Uploader - Fügen Sie dem Server eine Asyc-Anfrage hinzu, bevor Sie jede Datei hochladen?

Ich dachte darüber nach etwas in "onSubmit" Callback zu setzen. Aber diese "Anfrage nach Token" ist ein Asyc-Aufruf, was bedeutet, dass die Antwort des Servers nicht sofort zurückkommt. Ich weiß nicht, wie ich es machen soll oder ob das der beste Weg ist, dies zu tun.

Danke für jede Hilfe.

Antwort

2

Der Rückruf onSubmit akzeptiert einen "thenable" Rückgabewert. Mit anderen Worten, Sie können eine Promise zurückgeben und Fine Uploader wird warten, bevor Sie mit dem nächsten Schritt für diese Datei fortfahren, bis das zurückgegebene Versprechen entweder gelöst oder zurückgewiesen wurde. Zum Beispiel:

var uploader = new qq.FineUploader({ 
    callbacks: { 
     onSubmit: function(id, name) { 
     return new Promise(function(resolve, reject) { 
      // Send request to server, resolve() on success 
      // ... reject() on failure. 
      // Call this.setParams(tokenData, id) 
      // ...to send the token w/ the upload request. 
     }) 
     } 
    } 
}) 
+0

Vielen Dank für Ihre schnelle Antwort, Ray. Dieses Versprechen sieht gut aus. Ich werde es versuchen und werde zurückkommen, sobald ich ein Ergebnis habe. – dikko2000

+0

Hi Ray, deine Idee funktioniert. Vielen Dank! Ich habe versucht, meinen Code zu veröffentlichen, obwohl er Ihrem Beispiel sehr ähnlich ist, aber ich konnte nicht herausfinden, wie das Format funktioniert und beendet wird. – dikko2000

Verwandte Themen