Promise allSettled 不是函数

IT技术 javascript reactjs react-native promise expo
2021-05-09 12:40:49

我计划在我的 React Native - Expo 项目中将一些 Promise.all 更新为 Promise.allSettled,但该功能不存在。我检查了所有版本,一切都合适,但我仍然无法使用该功能。

节点-v:14.15.4

博览会 SDK -v 版本:^40.0.1

expo 在其 SDK 版本中使用 react native -v 0.63。这应该不是问题。这是错误消息:

Promise.allSettled 不是函数

有人知道解决这个问题吗?谢谢您的帮助!

1个回答

对于遇到此问题的任何人,显然这已在 v64 中修复:

https://github.com/facebook/react-native/issues/30236#issuecomment-939286987

对于旧版本,您可以使用简单的 polyfill:

Promise.allSettled = Promise.allSettled || ((promises) => Promise.all(
    promises.map(p => p
        .then(value => ({
            status: "fulfilled",
            value
        }))
        .catch(reason => ({
            status: "rejected",
            reason
        }))
    )
));