2017-06-19 54 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和响应大小,但没有响应内容...奇怪 –