, 2 promises, . , json . , , !
, , .
result.status "" json result.data. result.data -. , , !
var yourFetchWrapperFunction = function(method, url, headers, body, timeout=5000){
var timeoutPromise = new Promise(function(resolve,reject){
setTimeout(resolve, timeout, {status: 'error', code: 666, data: 'Verbinding met de cloud kon niet tot stand gebracht worden: Timeout.'});
});
return Promise.race([timeoutPromise, fetch(connectionType + '://' + url, {method: method, headers: headers, body: body})]).then((result) => {
var Status = result.status;
return result.json().then(function(data){
if (Status === 200 || Status === 0) {
return {status: 'success', code: Status, data: data};
}
else {
return {status: 'error', code: Status, data: 'Error (' + data.status_code + '): ' + data.message};
}
},function (response) {
return {status: 'error', code: Status, data: 'json promise failed' + response};
}).catch((error) => {
return {status: 'error', code: 666, data: 'no json response'};
});
}, function(error){
return {status: 'error', code: 666, data: 'connection timed out'};
}).catch((error) => {
return {status: 'error', code: 666, data: 'connection timed out'};
});
}
source
share