use*_*822 5 polymer polymer-1.0
有时我的编码方式错误,我的聚合物1.0网络应用程序和东西停止正常工作.就像将数据设置为某个自定义元素,然后立即尝试从中读取一些数据(这取决于刚刚设置的数据)(因为我不知道更好).有时这不起作用.大部分时间this.async都会帮助我,但有时却不会.但是,setTimeout在这种情况下,我从来没有让我失望过.大部分时间在setTimeout没有提供等待时间的情况下打电话也会起作用.
很长一段时间我都认为这this.async(function(){...})是一样的setTimeout(function(){...}).因为有时内部代码this.async将无法看到自定义元素数据中的更改,而内部代码setTimeout则不会.
这两种方法是以不同的方式实现的吗?
this.async将您的函数添加到事件队列的开头,同时setTimeout将其添加到结尾.如果使用setTimeout其他函数,则可能在调用函数之前执行了这些函数,从而导致您在数据中看到的更改.
从文件中this.async:
如果未指定等待时间,则运行具有微任务计时的任务(在当前方法完成之后,但在处理事件队列中的下一个事件之前)
另一方面,setTimeout会将您的函数添加到队列的末尾,如本文 "添加消息"部分所述.
setTimeout在作为第二个参数传递的时间之后,调用将向队列添加消息.如果队列中没有其他消息,则立即处理该消息; 但是,如果有消息,则setTimeout消息必须等待处理其他消息.因此,第二个参数表示最短时间而不是保证时间
| 归档时间: |
|
| 查看次数: |
2930 次 |
| 最近记录: |