2017-06-19 46 views
0

我有一個網絡工作者,提取請求會在一段時間後返回錯誤。 我不確定是否因爲超時,但我希望它有無限的超時。 這是我的內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和響應大小,但沒有響應內容...奇怪 –