Size: a a a

2020 July 08

АК

Александр Козлов... in pro.js
Peter V
Это он тебе сказал отменять запросы?
+
источник

L

Lupusregina[beta] in pro.js
источник

t

th.witness in pro.js
Как говорится: "Могу только посочувствовать"
источник

АК

Александр Козлов... in pro.js
не ну справедливости ради, этот способ работает) осталось только все красиво сделать
источник

t

th.witness in pro.js
Александр Козлов
не ну справедливости ради, этот способ работает) осталось только все красиво сделать
Что скажешь по предложенному мною выше способу?
источник

АК

Александр Козлов... in pro.js
th.witness
Что скажешь по предложенному мною выше способу?
вот сейчас, делаю его
У меня какая-то проблема с Promise типа почему-то он вызывается сильно больше раз, чем нужно
источник

t

th.witness in pro.js
Александр Козлов
попробую объяснить что мне нужно:
есть библиотека axios, в ней присутствует возможность отменять запрос, но она слишком топорная, нужно передавать cancelToken потом где-то его ловить
я хочу сделать единую точку входа, чтобы можно было любой запрос отменить, для этого хочу реализовать класс
export default class PromiseApi extends Promise {
 constructor(callback, requestSource) {
   super(callback);
   this.requestSource = requestSource;
 }

 cancel(message = '') {
   this.requestSource.cancel(message);
 }
};

И использовать его как-то так:
get(url, params = {}) {
   const CancelToken = Axios.CancelToken;
   let requestSource = CancelToken.source();

   return new PromiseApi((resolve, reject) => {
     Axios
         .get(url, {
           params: params,
           cancelToken: requestSource.token
         })
         .then(response => resolve(response.data))
         .catch(err => reject(err))
   }, requestSource);

как внутри (resolve, reject) получить доступ к this promiseApi?
Кстати, ты мог бы передавать callbak.bind(this);, но при этом придëтся использовать обычную функцию и, если тебе понадобится this того места, где ты работаешь, придëтся по старинке создать переменную, хранящую this, и обращаться к ней.
источник

t

th.witness in pro.js
th.witness
Кстати, ты мог бы передавать callbak.bind(this);, но при этом придëтся использовать обычную функцию и, если тебе понадобится this того места, где ты работаешь, придëтся по старинке создать переменную, хранящую this, и обращаться к ней.
В случае, когда тебе нужны оба контекста*
источник

t

th.witness in pro.js
И это, ИМХО, будет красивее того, что я предложил ранее.
источник

АК

Александр Козлов... in pro.js
th.witness
Кстати, ты мог бы передавать callbak.bind(this);, но при этом придëтся использовать обычную функцию и, если тебе понадобится this того места, где ты работаешь, придëтся по старинке создать переменную, хранящую this, и обращаться к ней.
Я что-то пока не могу врубить в это:
class MyPromise extends Promise {
 constructor(callback, requestSource) {
   super(callback);
   console.log(requestSource);
   this.requestSource = requestSource;
 }

 cancel() {
   return 'cancel';
 }
}

let myPromise = new MyPromise((resolve, reject) => {
 setTimeout(() => {
   resolve(42)
 }, 1000)
}, 10);

console.log(myPromise.then(result => console.log(result)));

конструктор вызывается два раза! Как только убираю then в самом низу - вызывается один раз
источник

L

Lupusregina[beta] in pro.js
Александр Козлов
Я что-то пока не могу врубить в это:
class MyPromise extends Promise {
 constructor(callback, requestSource) {
   super(callback);
   console.log(requestSource);
   this.requestSource = requestSource;
 }

 cancel() {
   return 'cancel';
 }
}

let myPromise = new MyPromise((resolve, reject) => {
 setTimeout(() => {
   resolve(42)
 }, 1000)
}, 10);

console.log(myPromise.then(result => console.log(result)));

конструктор вызывается два раза! Как только убираю then в самом низу - вызывается один раз
ты зачем в промайс полез?
источник

L

Lupusregina[beta] in pro.js
и там велосипед строить решил?
источник

АК

Александр Козлов... in pro.js
Lupusregina[beta]
ты зачем в промайс полез?
каприз
источник

t

th.witness in pro.js
Александр Козлов
Я что-то пока не могу врубить в это:
class MyPromise extends Promise {
 constructor(callback, requestSource) {
   super(callback);
   console.log(requestSource);
   this.requestSource = requestSource;
 }

 cancel() {
   return 'cancel';
 }
}

let myPromise = new MyPromise((resolve, reject) => {
 setTimeout(() => {
   resolve(42)
 }, 1000)
}, 10);

console.log(myPromise.then(result => console.log(result)));

конструктор вызывается два раза! Как только убираю then в самом низу - вызывается один раз
Он не вызывается дважды.
источник

L

Lupusregina[beta] in pro.js
источник

PV

Peter V in pro.js
Lupusregina[beta]
ты зачем в промайс полез?
ProMy’s? 😵
источник

L

Lupusregina[beta] in pro.js
Peter V
ProMy’s? 😵
промис?
источник

PV

Peter V in pro.js
Lupusregina[beta]
промис?
ага
источник

АК

Александр Козлов... in pro.js
th.witness
Он не вызывается дважды.
источник

t

th.witness in pro.js
Да, я тоже пытаюсь догнать, пояему так.
источник