function asyncCallDomainWithoutCallback() { let resultText; const xhr = new XMLHttpRequest(); const url = 'http://bar.other/resources/public-data/'; xhr.timeout = 30000; xhr.open('POST', url, true); xhr.send(); xhr.onload = ()=>{resultText = xhr.responseText}; return resultText; } function handler1(){ const serverResponse = asyncCallDomainWithoutCallback(); if(serverResponse) { // serverResponse = undefined throw new Error('THROW будет упущен') } return serverResponse; } function asyncCallDomainWitCallback(callbackForAsync) { const xhr = new XMLHttpRequest(); const url = 'http://bar.other/resources/public-data/'; xhr.timeout = 30000; xhr.open('POST', url, true); xhr.send(); xhr.onload = ()=>{ callbackForAsync(xhr.responseText) }; } function handler2(callbackForAsync){ asyncCallDomainWitCallback(callbackForAsync); } function callback (resultText) { const serverResponse = asyncCallDomain(callback); if(serverResponse) { throw new Error('THROW будет упущен') // никто не получит ошибку }else{ } return serverResponse; // никто не получит возвращаемое значение } Вот код описывающий приведенное выше описание |
function asyncCallDomainWithoutCallback() { let resultText; const xhr = new XMLHttpRequest(); const url = 'http://bar.other/resources/public-data/'; xhr.timeout = 30000; xhr.open('POST', url, true); xhr.send(); xhr.onload = ()=>{resultText = xhr.responseText}; return resultText; } function handler1(){ const serverResponse = asyncCallDomainWithoutCallback(); if(serverResponse) { // serverResponse = undefined throw new Error('THROW будет упущен') } return serverResponse; } function asyncCallDomainWitCallback(callbackForAsync) { const xhr = new XMLHttpRequest(); const url = 'http://bar.other/resources/public-data/'; xhr.timeout = 30000; xhr.open('POST', url, true); xhr.send(); xhr.onload = ()=>{ callbackForAsync(xhr.responseText) }; } function handler2(callbackForAsync){ asyncCallDomainWitCallback(callbackForAsync); } function callback (resultText) { const serverResponse = asyncCallDomain(callback); if(serverResponse) { throw new Error('THROW будет упущен') // никто не получит ошибку }else{ } return serverResponse; // никто не получит возвращаемое значение } Вот код описывающий поведение callback. |
эти(твои) примеры, в моем мозгу ))) выглядят так:
let a = 1 let b = 2 console.log(c + d) |
Часовой пояс GMT +3, время: 20:15. |