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;
}
上面代码中的数据变量是一个承诺。我只需要诺言中的结果。但变量测试以未定义的值返回。 我的代码有什么问题?
答案 0 :(得分:2)
看起来你犯了一个常见的错误。
您可以异步为promise中的变量test
赋值。但是,测试的新值将在完成ResumeDataReducer
功能后分配。
因此,根据我的观点,您需要使用async / await或更改逻辑并从ResumeDataReducer
返回Promise,而不是值。