Хм, я долго думал о том же. Дело в том, что falcor является сборщиком данных json graph, а immutablejs - о сериализации/десериализации данных для использования в компонентах реакции. Он должен найти общую основу между двумя или каким-либо видом api, чтобы впоследствии их обменивать данными, получая данные (falcor) и обрабатывая (immutablejs) данные.
Лучший метод, который я думаю, что до сих пор есть модель Falcor объявить как метод апи, который вы передаете действия (потока), как обещания, я использую alt в реализации, так и в апи, webUtilAPI.js может выглядеть следующим образом
'use strict';
let Api = exports;
import { Promise } from 'es6-promise';
import { falcor } from 'falcor';
Api.getFalcorData =() => {
return new Promise((resolve) => {
var model = new falcor.Model({
source: new falcor.HttpDataSource('/model.json')
});
model.get("somedata").then((response) => {
resolve(response.json.somedata)
});
})
}
впоследствии в действиях вы можете сериализовать его с immutablejs
'use strict';
import UUID from 'node-uuid';
import Immutable from 'immutable';
import alt from '../alt';
import webUtilAPI from '../api/webUtilAPI';
class ActionCreators {
constructor() {
this.generateActions(
'falcorToImmutable',
);
}
getFalcor() {
var that = this;
return webUtilAPI.getFalcorData()
.then(success(arr) => {
var data = Immutable.fromJS({ id: UUID.v4(), arr })
that.alt.getActions('ActionCreators').falcorToImmutable(data);
});
}
}
module.exports = ActionCreators;
Я также думал об этом предмете. Я не уверен, что это будет новый DataSource, Model или что-то еще полностью, как какой-то фасад или прокси. – sigmus