uniCloud云对象并行请求遇到未鉴权时promise状态无法落定
uniCloud云对象并行请求遇到未鉴权时promise状态无法落定
产品分类:uniCloud/App
示例代码:
try {
await Promise.all([
// 这5个请求都是通过uniCloud云对象发出
guestStore.fetchGuests(),
eventStore.readEventsByUserId(),
ledgerStore.readLedgersByUserId(),
recordStore.readRecordsByUserId(),
cashGiftStore.fetchCashGifts(),
]);
console.log("初始化数据成功");
isInitialized.value = true;
} catch (error: any) {
console.error("初始化数据失败", error);
initializationError.value = `Failed to initialize stores: ${error.message}`;
} finally {
isInitializing.value = false;
}
操作步骤:
程序会在onLaunch时初始化应用数据,然后更改全局状态
但由于请求被挂起,导致无法执行await后面的代码以及catch和finally代码都不会被执行
预期结果:
并行请求时正确处理Promise落定状态
PS: 这些模块是否有能够开源出来,发动社区的力量一起维护
实际结果:
未处理
bug描述:
利用Promise.all同时发起5请求,这5个请求都是通过云对象方式进行调用,都需要鉴权
如果某个请求遇到鉴权失败的情况下,会自动弹框提示并且当前请求的Promise进入catch状态
但另外4个请求就一直处于挂起状态
5 回复
但另外4个请求就一直处于挂起状态,你是怎么确定的,从浏览器网络请求看的吗,发下截图
另外4个请求已经完成,并且已经执行了uni.showMdal函数
但是这四个请求的Promise还是pendding状态,既没有被reject,也没有被resolve.
因为没有执行finally函数


