gpt4 book ai didi

polymer - setTimeout 和 this.async 不一样?

转载 作者:行者123 更新时间:2023-12-04 18:04:57 24 4
gpt4 key购买 nike

有时我以错误的方式编码我的 polymer 1.0 Web 应用程序并且东西停止正常工作。就像将数据设置为一些自定义元素,然后立即尝试从中读取一些数据(这取决于刚刚设置的数据)(因为我不知道更好)。有时这不起作用。大多数时候this.async会帮助我,但有时不会。但是,setTimeout在这种情况下,我从来没有让我失望过。大部分时间调用setTimeout不提供等待时间也可以。

想了很久this.async(function(){...})setTimeout(function(){...}) 相同.因为有时代码在 this.asyncsetTimeout 中的代码时将无法看到自定义元素数据的变化将不会。

这两种方法是否以不同的方式实现?

最佳答案

this.async将您的函数添加到事件队列的开头,而 setTimeout将其添加到末尾。如果您使用 setTimeout在调用您的函数之前可能已经执行了其他函数,从而导致您可以在数据中看到的更改。

来自 documentationthis.async :

If no wait time is specified, runs tasks with microtask timing (after the current method finishes, but before the next event from the event queue is processed)



另一方面,setTimeout 会将您的函数添加到队列的末尾,如本 article 的“添加消息”部分所述。 .

Calling setTimeout will add a message to the queue after the time passed as second argument. If there is no other message in the queue, the message is processed right away; however, if there are messages, the setTimeout message will have to wait for other messages to be processed. For that reason the second argument indicates a minimum time and not a guaranteed time

关于polymer - setTimeout 和 this.async 不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606230/

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