Я пытаюсь использовать (как следует из названия) функцию set_timeout возвышенного текста 3 в плагине.
Насколько я понял, во многих случаях требуется использование лямбда-функции. Итак, я попробовал этот простой тест:
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»....