Size: a a a

2020 July 08

t

th.witness in pro.js
Можешь первым параметром класса PromiseApi принимать не коллбек, а фунцию, в которую ты посылаешь this.

let kek = null;
new PromsieApi(self => kek = self, () => console.log(kek))
источник

t

th.witness in pro.js
Хотя там, вроде, не важен порядок.
источник

t

th.witness in pro.js
th.witness
Можешь первым параметром класса PromiseApi принимать не коллбек, а фунцию, в которую ты посылаешь this.

let kek = null;
new PromsieApi(self => kek = self, () => console.log(kek))
Так, я туплю...
источник

PV

Peter V 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?
Сделай как у аксиоса в примере

const CancelToken = axios.CancelToken;
let cancel;

axios.get('/user/12345', {
 cancelToken: new CancelToken(function executor(c) {
   // An executor function receives a cancel function as a parameter
   cancel = c;
 })
});

// cancel the request
cancel();
источник

АК

Александр Козлов... in pro.js
Peter V
Сделай как у аксиоса в примере

const CancelToken = axios.CancelToken;
let cancel;

axios.get('/user/12345', {
 cancelToken: new CancelToken(function executor(c) {
   // An executor function receives a cancel function as a parameter
   cancel = c;
 })
});

// cancel the request
cancel();
та я делал, из vuex не удобно запросы отменять
источник

PV

Peter V in pro.js
Александр Козлов
та я делал, из vuex не удобно запросы отменять
В своём кастомным классе так сделвй
источник

L

Lupusregina[beta] 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?
а зачем тебе вообще надо отменять запрос?
источник

t

th.witness in pro.js
th.witness
Можешь первым параметром класса PromiseApi принимать не коллбек, а фунцию, в которую ты посылаешь this.

let kek = null;
new PromsieApi(self => kek = self, () => console.log(kek))
Исправил*
источник

АК

Александр Козлов... in pro.js
Lupusregina[beta]
а зачем тебе вообще надо отменять запрос?
потому что если очень быстро тыкать по постам(пусть будет постам) запросы улетают и в один прекрасный момент ты ожидаешь увидеть один пост, но там будет совершенно другой
источник

АК

Александр Козлов... in pro.js
так что при дестрои компонента поста, надо отменять запрос
источник

L

Lupusregina[beta] in pro.js
Александр Козлов
потому что если очень быстро тыкать по постам(пусть будет постам) запросы улетают и в один прекрасный момент ты ожидаешь увидеть один пост, но там будет совершенно другой
и где тут связь?
источник

L

Lupusregina[beta] in pro.js
у тебя что результат запроса не привязан к компоненту его вызывающего, что такое возможно
источник

АК

Александр Козлов... in pro.js
Lupusregina[beta]
у тебя что результат запроса не привязан к компоненту его вызывающего, что такое возможно
у меня результат запроса привязан к vuex
источник

АК

Александр Козлов... in pro.js
а компонент просто показывает, что сейчас в vuex
источник

L

Lupusregina[beta] in pro.js
Александр Козлов
у меня результат запроса привязан к vuex
думается мне, лютый велосипед ты делаешь.
источник

PV

Peter V in pro.js
Lupusregina[beta]
думается мне, лютый велосипед ты делаешь.
+
источник

АК

Александр Козлов... in pro.js
Lupusregina[beta]
думается мне, лютый велосипед ты делаешь.
так просто со стороны кажется) на самом деле там слишком больше нюансов
источник

PV

Peter V in pro.js
Вообще говоря я бы кнопку удаления задисейблил после нажатия если проблема в том что пользователь дохера тыкает
источник

АК

Александр Козлов... in pro.js
Peter V
Вообще говоря я бы кнопку удаления задисейблил после нажатия если проблема в том что пользователь дохера тыкает
проблема в том, что тимлид дохера тыкает)
источник

PV

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