如何在当前runloop结束时运行某些东西?

Jo *_*iss 6 ember.js

我想推迟一个操作,直到所有绑定都已刷新并且当前的runloop已经完成.我怎么做?

Jo *_*iss 7

使用Ember.run.schedule方法:

 Ember.run.schedule(queue[, context], callback[, *args]);
Run Code Online (Sandbox Code Playgroud)

这里queue是运行循环队列(例如'actions'),callback是您要执行的功能.例如:

 Ember.run.schedule('actions', function() {
   console.log('I run at the end of the current runloop');
 });
Run Code Online (Sandbox Code Playgroud)

相关地,为了防止函数多次运行,请使用Ember.run.once(您可能也看到过它scheduleOnce):

 Ember.run.once([context,] callback[, *args]);
Run Code Online (Sandbox Code Playgroud)

这将在'actions'队列中运行回调.

(更新;感谢@machty进行更正!)