2017-07-07 18 views
0

zipファイル内のマニフェストファイルの内容を読み取ってファイルのアップロードを検証しようとしています。私はJSZipを使用してファイルを読み込み、特定の条件下でファイルをアップロードするプロセスを停止したいと考えています。 if/elseを使って解決/拒否を強制する正しい方法は何ですか?約束を強制的に拒否/解決する

function validateUpload(file, errFiles) { 
    var validateFile = JSZip.loadAsync(file) 
    .then(function(zip) { 
     var manifest = zip.files['manifest.json']; 
     return manifest.async("text") // added return here 
     .then(function(contents) { 
     var manifestObj = angular.fromJson(contents); 
     if((manifestObj.module === 'analytics') && ($state.current.name.indexOf('packages') !== -1)) { 
      return $q.reject('Invalid software upload'); 
     } 
     if(!manifestObj.module && ($state.current.name.indexOf('analytics') !== -1)) { 
      return $q.reject('Invalid analytics upload'); 
     } 
     return $q.resolve(file); 
     }); 
    }); 
    validateFile.then(function(data) { 
     console.log('success: ' + data); 
     uploadFile(file); 
    }, function(error) { 
     console.log('error: '+ error); 
    }); 

編集

私はmanifest.asyncの呼び出しの前にreturn文がありませんでした、正しく今validateFileの約束の成功/エラーを呼び出しているようです。

答えて

0

manifest.asyncを呼び出す前にreturn文を追加すると、問題が修正されました。

関連する問題