diff --git a/panel/io/state.py b/panel/io/state.py index 6c1f26fb5d..ee7c56b33b 100644 --- a/panel/io/state.py +++ b/panel/io/state.py @@ -5,6 +5,7 @@ import asyncio import datetime as dt +import functools import inspect import json import logging @@ -446,7 +447,10 @@ def execute(self, callback: Callable([], None)) -> None: callback: callable Callback to execute """ - if param.parameterized.iscoroutinefunction(callback): + cb = callback + while isinstance(cb, functools.partial): + cb = cb.func + if param.parameterized.iscoroutinefunction(cb): param.parameterized.async_executor(callback) elif self.curdoc: self.curdoc.add_next_tick_callback(callback)