gpt4 book ai didi

Angularjs 中止的 promise 仍然延迟其他 promise

转载 作者:行者123 更新时间:2023-12-03 06:54:06 26 4
gpt4 key购买 nike

我最近发布了this question并找出了直接的解决方案(也就是说,当路线改变时我能够取消 promise /请求)。但是,我遇到了另一个相关的问题,我认为该问题属于一个单独的问题,所以这里是:

当路线改变时,我可以中止我的 promise (正如您从我链接的问题中看到的那样)。但是,由于某种奇怪的原因,其他路由上的任何其他请求在解析时都会被延迟。请参阅下面我的开发工具屏幕截图。

场景如下:我加载路由 A,它调用 /api/categories,您可以看到它需要 30 毫秒,这是正常的。然后我导航到路线 B,然后在加载完成之前返回路线 A。当我返回时,对 /api/categorySites/1 的调用被取消,您可以看到何时发生这种情况,因为灰色条结束。这是通过中止 promise 来完成的。但是,再次返回路由 A,对 /api/categories 的调用不会解析,直到灰点再次出现在已取消的请求上。第二次调用 /api/categories 不应花费 2.23 秒,而应接近 30 毫秒。

Dev tools

这是怎么回事?我认为第二个 Route A 请求会和以前一样快。我需要让它更快地工作。我的代码在 this question 。如果您认为我应该再次将其包含在此处,请告诉我。我很难想象这不是一个常见问题......

最佳答案

这是一篇较旧的文章,但我确实对此进行了研究,这听起来像是我最近在 Emberjs 文档中读到的急切与惰性异步转换。在您的路线(以及随后的中止)中履行 promise (完成),然后继续执行您的重新路线请求。

我相信这可以通过状态 Controller 来改进。

There is an Angularjs ui-router state controller that might be of use.

Here are example examples.

Angularjs routing documentation (for posterity).

所以这是关于由 $stateProvider (ui-router) 增强的 $routeProvider (Angularjs 默认)以加速中止的路由。

希望这对您有所帮助(大约 312 天后)。

关于Angularjs 中止的 promise 仍然延迟其他 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com