Показать сообщение отдельно
  #12 (permalink)  
Старый 25.10.2018, 07:54
Интересующийся
Отправить личное сообщение для victornalchik Посмотреть профиль Найти все сообщения от victornalchik
 
Регистрация: 18.11.2017
Сообщений: 21

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.
Ответить с цитированием