首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与来自存储区的数据的异步请求

与来自存储区的数据的异步请求
EN

Stack Overflow用户
提问于 2015-06-22 05:07:43
回答 1查看 101关注 0票数 0

我刚开始使用refluxjs/react和webpack。我真的很喜欢listenAndPromise异步模式,但我遇到了一个问题。我得到了以下代码:

操作:

代码语言:javascript
复制
var ResumeService = require('services/ResumeService');
var ResumeActions = Reflux.createActions({
    'save': {
        asyncResult: true
    }
});
ResumeActions.save.listenAndPromise(ResumeService.save);

ResumeService:

代码语言:javascript
复制
var http = require('utils/http');
var ENDPOINT = '/resumes/';
module.exports = {
    save: function() {
        return http.post(ENDPOINT + 'save', {
            resume: ??????????
        });
    },
}

以及商店的一部分:

代码语言:javascript
复制
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变量传递给上面的service文件?

奇怪的是,如果我在service文件中执行var Store = require('stores/ResumeStore');,它的值是object {},只有当我在服务中包含商店时才会发生这种情况,我认为这与无休止的循环要求或类似的东西有关。(存储需要操作,操作需要服务,服务需要存储)

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 17:18:40

为什么不直接将简历作为参数添加到ResumeService的保存方法中呢?

代码语言:javascript
复制
module.exports = {
    save: function(resume) {
        return http.post(ENDPOINT + 'save', {
            resume: resume
        });
    },
}

那么ResumeActions.save.listenAndPromise(ResumeService.save);应该可以工作了。listenAndPromise只是将操作有效负载传递给它的回调参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30969345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档