瀏覽代碼

fix #247: Can't use coroutine callback in `put_button()`

wangweimin 3 年之前
父節點
當前提交
157b1a3938
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 1 1
      pywebio/io_ctrl.py
  2. 2 2
      pywebio/output.py

+ 1 - 1
pywebio/io_ctrl.py

@@ -382,6 +382,6 @@ def input_event_handle(item_valid_funcs, form_valid_funcs, preprocess_funcs, onc
 
 
 def output_register_callback(callback, **options):
-    """向当前会话注册毁掉函数"""
+    """向当前会话注册回调函数"""
     task_id = get_current_session().register_callback(callback, **options)
     return task_id

+ 2 - 2
pywebio/output.py

@@ -798,11 +798,11 @@ def put_buttons(buttons, onclick, small=None, link_style=False, outline=False, g
 
     def click_callback(btn_idx):
         if isinstance(onclick, Sequence):
-            onclick[btn_idx]()
+            return onclick[btn_idx]()
         else:
             btn_val = values[btn_idx]
             if not btns[btn_idx].get('disabled'):
-                onclick(btn_val)
+                return onclick(btn_val)
 
     callback_id = output_register_callback(click_callback, **callback_options)
     spec = _get_output_spec('buttons', callback_id=callback_id, buttons=btns, small=small,