承诺结果未分配给变量

时间:2018-03-21 03:35:40

标签: reactjs api redux promise

import {StorageApiContext,ResumeData} from '../../app/api';
const context = new StorageApiContext();

export function ResumeDataReducer(state={},action){
    var test;
    switch(action.type){
        case "GetResume":{            
            var data= 
            context.ResumeData
            .getAll((odata)=>{return odata.filter("userid eq \'"+action.payload+"\'")
            .select("resumename")}).then((result)=>{ test = result; });
            return {...state,"resumenames":test};
        }        
    }
    return state;
}
上面代码中的

数据变量是一个承诺。我只需要诺言中的结果。但变量测试以未定义的值返回。 我的代码有什么问题?

1 个答案:

答案 0 :(得分:2)

看起来你犯了一个常见的错误。 您可以异步为promise中的变量test赋值。但是,测试的新值将在完成ResumeDataReducer功能后分配。 因此,根据我的观点,您需要使用async / await或更改逻辑并从ResumeDataReducer返回Promise,而不是值。