2016-08-11 2 views
1

私は自分のサーバーにファイルをアップロードできるようにしようとしているファインアップローダー(従来のバージョン)を使用しています。私が今直面している課題は、通常のアップロードプロセスの前にサーバーからトークンを取得することになっていることです。トークンは各アップロードリクエスト/チャンクとともに送信されます)。このトークンは各ファイルに固有のものであるため、この「トークン要求」のステップは、ユーザーがファイルを選択した後にのみ開始できます。詳細アップロード - 各ファイルをアップロードする前にサーバーにasyc要求を追加しますか?

"onSubmit"コールバックに何かを入れることを考えていました。しかし、この「トークン要求」はasycコールであり、サーバーの応答がすぐに戻ってこないことを意味します。私はそれをどうやって行うのか、それがこれを行う良い方法であるかわからない。

ありがとうございました。

答えて

2

onSubmitコールバックは "thenable"戻り値を受け入れます。つまり、Promiseを返すことができます。返された約束が解決または拒否されるまで、ファインアップローダはそのファイルの次のステップに進む前に待機します。例:

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

あなたの迅速な対応に感謝します。その約束はよかった。私はそれを試してみると、結果が得られたらここに戻ってきます。 – dikko2000

+0

こんにちは、あなたのアイデアは動作します。本当にありがとう! サンプルに非常に似ていますが、自分のコードを投稿しようとしましたが、フォーマットを終了させて​​終了させることができませんでした。 – dikko2000

関連する問題