【发布时间】:2021-10-06 07:36:18
【问题描述】:
我在使用 MobX 时遇到问题,因为我想在我的商店中执行 异步操作 后致电 onSortHandler 和 loadingCallback,但由于 导致呼叫顺序错位>异步操作。问题的附加复杂性在于onSortHandler 触发了一个函数,该函数使用由给定动作计算的计算值。
这是我在商店里的动作:
loadFurniturePage = async (pageNumber: number, pageAmount: number) => {
const nextPage = await agent.FrontEnd.getNextFurniturePage(pageNumber, pageAmount); <-- I suppose while waiting here, the finally block get called. (See it below)
nextPage.forEach((furniture: IFurniture) => {
furniture.type = furniture.typeInString;
this.furnitureMap.set(furniture.id, furniture)
});
}
这里是我调用上述动作的地方:
loadFurniturePage(pageNumber, pageAmount).finally(() => { <-- this code block should be called after the action finishes it's running.
onSortHandler(selectedSortByValue);
loadingCallback(false);
});
这是我调用onSortHandler时使用的计算值:
get getAllFurniture() {
return Array.from(this.furnitureMap.values())
}
有人知道如何解决这个问题吗?
【问题讨论】:
-
嗨。
this.furnitureMap.set(furniture.id, furniture)是async函数吗? -
@EhsanNazeri 据我所知,它不是。