2017-06-19 16 views
0

しばらくするとエラーを返すフェッチ要求を持つWebワーカーがいます。 タイムアウトが原因であるかどうかわかりませんが、無限のタイムアウトを無制限にしたいと思っています。 これはwebWorker内部の私のコードです:コードのJavaScriptのフェッチapiのタイムアウトを無制限に制限

fetch(data.defaults + 'returnSqlRes.php', 
    { 
     headers: {'Accept': 'application/json', 'Content-Type': 'application/json'}, 
     method: "post", 
     body: JSON.stringify(data.sql) 
    }) 
    .then(status) 
    .then(json) 
    .then(function (sData) { 

     var dt={}; 
     dt['o']=data.tableId; 
     dt['data']=sData; 
     _.forEach(dt.data[0],function (row) { 
      row.DT_RowId = composeId(data.pk, row); 
      _.forEach(data.tableCols,function (o, index) { 
       if (_.has(o, 'complexList')) { 
        var fieldName = o.attr.desigColumn ? o.attr.desigColumn : o.attr.name; 
        var field = o.name; 
        var keys = returnListKeys(o); 
        var search = ''; 
       _.forEach( keys, function (name, i) { 
         if (i < keys.length - 1) { 
          search += row[name] + '@'; 
         } else { 
          search += row[name]; 
         } 
        }); 
        var result = _.find(data.loadedData[getComplexListIndex(o)], {VAL: search}); 
        if (result == undefined) { 
         row[field] = ""; 
        } else { 
         row[field] = result[fieldName]; 
        } 
       } 
      }); 
     }); 

     self.postMessage(downloadCSV(dt)); 

最終的な目的は、csvファイルをダウンロードすることです。問題は時々私は150kまたは200kのレコードがあり、それは解析する時間がかかり、ファイルの代わりにネットワークエラーがダウンロードされます。 100k未満のレコードを持つテーブルでは、すべてが正常です。ファイルがダウンロードされます。

+2

エラーを表示します。私はそれがサーバーのタイムアウトの例外だと思います。 –

+0

応答データのロードに失敗しました... –

+0

サーバからのデータまたはエラーが返されませんでした.... –

答えて

0

これが役に立つかもしれないhttps://github.com/github/fetch/issues/175幸運!

+0

問題は時々、応答はex:19 mb、さらには80 mbです。私は200okと応答のサイズを取得するだけですが、応答内容はありません... Strange –