【发布时间】:2013-11-27 11:02:38
【问题描述】:
我正在尝试使用(如标题所示)
设置超时
插件中 sublime text 3 的功能。
据我了解,在许多情况下都需要使用 lambda 函数。所以我尝试了这个简单的测试:
class SetTimeoutTestCommand(sublime_plugin.WindowCommand):
def run(self):
for x in range(1,10):
sublime.set_timeout(lambda : print(x), 4000)
所以我希望我会一次打印一个数字,每个数字之间有 4 秒的延迟。如 Sublime 3 API 中所述:
在给定延迟后(以毫秒为单位)在主线程中运行回调。具有相同延迟的回调将按照它们添加的顺序运行。
但我有 9 个 '9' 在 4 秒后打印。因此,基于循环的第一次迭代,所有“9”都会同时打印。
你知道我能做些什么来解决这个问题吗?
提前致谢!
编辑:我发现这是有效的(嗯,它打印 '9' 9 次,每次之间有 1 秒的延迟:
class SetTimeoutTestCommand(sublime_plugin.WindowCommand):
def run(self):
for x in range(1,10):
sublime.set_timeout(lambda : print(x), x*1000)
但问题仍然存在:它只打印出 '9' ....
【问题讨论】:
标签: python settimeout sublimetext3 sublime-text-plugin