我有一个带有获取请求的网络工作者,该请求在一段时间后返回错误。我不确定这是否是因为超时,但我希望它有无限超时。这是我在 webworker 中的代码:
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 记录的表中一切正常,文件已下载。
遇到这可能有助于 https://github.com/github/fetch/issues/175 好运!