来自商店的数据的异步请求

时间:2015-06-21 21:07:43

标签: javascript asynchronous reactjs reactjs-flux refluxjs

我刚开始使用refluxjs /与webpack做出反应。我真的很喜欢var ResumeService = require('services/ResumeService'); var ResumeActions = Reflux.createActions({ 'save': { asyncResult: true } }); ResumeActions.save.listenAndPromise(ResumeService.save); 异步模式,但我遇到了问题。我得到了以下代码:

动作:

var http = require('utils/http');
var ENDPOINT = '/resumes/';
module.exports = {
    save: function() {
        return http.post(ENDPOINT + 'save', {
            resume: ??????????
        });
    },
}

ResumeService:

var RendererActions = require('actions/RendererActions');
var ResumeStore = Reflux.createStore({
    listenables: [ResumeActions],
    resume: Immutable.fromJS(ResumeExample),  //nested object

    onSaveCompleted: function(id) {
        .....
    },

    onSaveFailed: function() {
        ....
    }
    ...
});

店铺的一部分:

Action.save()

因此,当用户进行更改时,将更新商店中的resume变量。现在,用户想要保存更改,然后按下一个触发resume的按钮。我的问题就出现了:如何将service变量从商店传递到上面的var Store = require('stores/ResumeStore');文件?

奇怪的是,如果我在service文件中object {},它的值为getElementsByName,只有当我在服务中包含商店时才会发生这种情况,我认为与无限循环要求或类似的东西有关。 (存储需要操作,操作需要服务,服务需要存储)

1 个答案:

答案 0 :(得分:0)

为什么不在ResumeService的save方法中添加简历作为参数?

module.exports = {
    save: function(resume) {
        return http.post(ENDPOINT + 'save', {
            resume: resume
        });
    },
}

然后ResumeActions.save.listenAndPromise(ResumeService.save);应该有效。 listenAndPromise只是将动作有效负载传递给它的回调参数。