- Expo React原生SDK版本:46
1.平台:安卓/iOS
1.相关 Package :Expo.Updates
大家好,我想以编程方式检查新的更新,而不使用app.json中的fallbackToCacheTimeout,它会在应用程序启动时触发新更新的检查,因为这样我就无法放置自定义加载页面。
try{
const update = await Updates.checkForUpdateAsync();
if(update.isAvailable){
await Updates.fetchUpdateAsync();
await Updates.reloadAsync();
}else{}
}catch(err){}
但我希望能够在一定时间后中止所有这些调用(因此,连接不好的用户可以使用应用程序,而无需等待很长时间)。我检查了文档,没有找到任何允许这样做的方法。
我不认为这是可能的取消承诺,现在在Javascript,或可能的任何连接?
或者app.json中的“fallbackToCacheTimeout”值会自动应用于Expo API的获取更新调用吗?
英译汉有人知道怎么做吗
1条答案
按热度按时间9udxz4iz1#
首先我假设你已经在
app.json
或app.config.js
文件中将updates.checkautomatically
字段设置为ON_ERROR_RECOVERY
。如果没有,请检查文档。你需要这个的原因是为了避免自动更新,这也会阻止你的应用程序在闪屏上。现在,为了中止或绕过promise,例如在您的例子中的
Updates.fetchUpdateAsync
。您基本上可以在setTimeout
中抛出一个Error
,这样,catch块将被执行,绕过promise。下面是代码:
请参考本节以了解在eas更新中使用
fallbackToCacheTimeout
。