Показать сообщение отдельно
  #5 (permalink)  
Старый 17.12.2016, 15:32
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Malleys,
Цитата:
Можно сказать проблема решена
Для отмены XHR запросов работать не будет.

Как вариант, можно сделать через потоки, чтобы не устраивать колбасу с переписыванием функционала реализации промиса в браузере.
<script src='https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.0.1/Rx.js'></script>
<button id='b1'>start</button>
<button id='b2'>cancel</button>
<script>
let [b1, b2] = document.querySelectorAll('button'),
	o = Rx.Observable.fromEvent(b1, 'click')
						 .switchMap(() => Rx.Observable.timer(2000).takeUntil(Rx.Observable.fromEvent(b2, 'click')))				 
					 
o.subscribe(() => document.body.style.backgroundColor = "#" + ("000000" + (Math.random() * 0xffffff | 0).toString(16)).slice(-6))
</script>

Последний раз редактировалось destus, 17.12.2016 в 15:35.
Ответить с цитированием