我正在使用一个Promise链来轮询文件中可用的数据。
我发现这很好用,我可以根据响应数据中可用的json节点运行链。
function getData(url, node, interval, timeout) {
var endTime = Number(new Date()) + timeout,
returnData = function(resolve, reject) {
loadJSON(url, function(data) {
try {
json = JSON.parse(data);
} catch (e) {
json = data;
}
js = (node !== false) ? json[node] : json;
if (js) {
resolve(json);
} else if (Number(new Date()) < endTime) {
setTimeout(returnData, interval, resolve, reject);
} else {
if (json.error) {
reject(json.error.message);
} else {
reject('no data available');
}
}
});
};
return new Promise(returnData);
}
我需要更改请求链的顺序,以便如果数据未返回200状态代码,则应该在再次运行getData promise之前请求生成数据。
我如何调整承诺链以响应现有数据或发起新的数据请求,然后获得该数据请求?
需要执行条件替换请求的情况是以前没有数据。
谢谢