我正在调用一个方法(在下面的“调用方法”中进行描述)以写入并更新到我的Realm数据库中(在下面的“接收和返回-方法addTaskToGroup”中进行描述)。
但是,即使控制台成功返回,addTaskToGroup始终返回未定义的值。
我尝试在下面的位置添加async-await
,但没有成功。
调用方法:
let latestGroup = await addTaskToGroup(data, id);
console.log("latest group: ", latestGroup);
接收并返回
export const addTaskToGroup = async (task, groupId) => {
let group = await getGroup(groupId); //gets group from realm
realm.write(() => {
group.tasks.push(task);
console.log("group to be returned ", group)
return group;
})
}
“要返回的组”的组的控制台很好,但是latestGroup
未定义。
答案 0 :(得分:1)
您需要将回调包装到promise中并返回。
export const addTaskToGroup = async (task, groupId) => {
let group = await getGroup(groupId); //gets group from realm
return new Promise((resolve) => {
realm.write(() => {
group.tasks.push(task);
console.log("group to be returned ", group)
return resolve(group);
});
});
}
答案 1 :(得分:0)
此箭头功能未返回任何值
export const addTaskToGroup = async (task, groupId) => {
...
}
因此,为了修复该问题,您需要在该箭头功能上添加一个return语句
export const addTaskToGroup = async (task, groupId) => {
let group = await getGroup(groupId); //gets group from realm
realm.write(() => {
group.tasks.push(task);
console.log("group to be returned ", group)
return group;
});
return group;
}
如果执行了write(),则可以让代码类似于以下内容:
export const addTaskToGroup = async (task, groupId) => {
let group = await getGroup(groupId); //gets group from realm
realm.write(() => {
group.tasks.push(task);
console.log("group to be returned ", group)
// return group;
});
return group;
}