1 回答
TA贡献1789条经验 获得超10个赞
您需要以数组的形式提供承诺。目前,您没有从地图中返回任何内容,这是导致问题的原因。Promise.all
此外,代替使用 permissionsArray 变量,您可以简单地从嵌套 promise 中返回所需的值,该值将在响应中可用Promise.all(...).then(...)
getMissingPermissions = () => {
// Only check permissions on the foreground
if (AppState.currentState.match(/active/)) {
// We have to empty the current missing permssions and recalculate them
Promise.all(
Object.keys(permissions).map((key) => {
return permissions[key].checkPermission().then(({ status }) => {
if (status !== "granted") {
return permissions[key];
}
return;
});
})
).then((res) => {
const permissionsArray = res.filter(Boolean)// Filter out undefined values
this.setState({
missingPermissions: permissionsArray,
});
});
}
};
添加回答
举报