ACTIONS
ACTIONS это главный путь к соединению частей вашего приложения (модулей и плагинов) вместе. Это работает подобно Event Emitter только с promises: вы можете вызвать любое событие (event) в любой модуль/плагин который имеет для этого события "подписку". И "подписать" (subscribe) любой модуль/плагин на любое событие с другого модуля/плагина в любом месте приложения. Каждый ACTIONS в ответ обязан вернуть Promise.
Как же это работает на практике: представьте что у вас есть два модуля - user и product. User хочет получить информацию с модуля product.
Прежде всего мы должны подписаться на product module для события "получения информации" и отправить какую-то информацию в ответ на событие:
ACTIONS.on('product.getInfo', () => {
return Promise.resolve({ name: 'potato', weight: 300 });
});
Следующий шаг это послать событие в product module от user module для получения ответа с информацией.
ACTIONS.send('product.getInfo').then((info) => console.log(info));
Если вы хотите передать какие-то параметры в ваше событие - вы можете добавить их как второй аттрибут.
// product module
ACTIONS.on('product.set', (data) => {
const newProduct = data;
return Promise.resolve(newProduct);
});
// user module
ACTIONS.send('product.set', { name: 'tomato' }).then((info) => console.log(info));
Также вы можете использовать async await для удобства:
const tomatoInfo = await ACTIONS.send('product.set', { name: 'tomato' });
Last updated
Was this helpful?