Вызов сервиса / метода javascript из объекта массива - PullRequest
1 голос
/ 01 июля 2019

У меня есть этот массив:

[
   {service: "AssignmentService", method: "saveMillaje", params: [1, 'some param'], id: 1},
   {service: "AssignmentService", method: "saveMillaje", params: [1, 'some param', { otherData: 'data' }], id: 2}
]

Где "service" - это файл-оболочка для таких аксиосов, как:

// AssignmentService.js
import Http from './Http';
const endpoint = 'assignment';
export default {
   saveMillaje(param1, param2, param3) {
      // do something
      // this will return a PROMISE
   },
};

Мне нужно в определенной точке моего приложения, вызвать ивыполнить, например, позицию 1 массива со всеми параметрами.

Преобразуйте это:

{service: "AssignmentService", method: "saveMillaje", params: [1, 'some param', { otherData: 'data' }], id: 2}

Кому:

import AssignmentService from 'services/AssignmentService';
...
someMethod(){
   AssignmentService.saveMillaje(1, 'some param', {otherData: 'data'})
   then((response)=> {
     // So something
   });
}

Я понятия не имею, чтобы добиться этого.Вы можете мне помочь?Большое спасибо за любую помощь по этому поводу.

1 Ответ

2 голосов
/ 01 июля 2019
import AssignmentService from 'services/AssignmentService';
import OtherService from 'services/OtherService';
var services = {AssignmentService, OtherService}

someMethod(obj){
   services[obj.service][obj.method].apply(null, obj.params).
   then((response)=> {
     // So something
   });
}

Тогда вы можете просто передать объекты из вашего массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...