Jupyter notebook 通过Jupyter内核(Jupyter笔记本扩展)执行代码时等待内核准备就绪

Jupyter notebook 通过Jupyter内核(Jupyter笔记本扩展)执行代码时等待内核准备就绪,jupyter-notebook,Jupyter Notebook,我正在构建一个Jupyter笔记本扩展,当内核在初始化过程中准备就绪时,我需要立即执行一些代码。我正在执行下面的代码,但我注意到有时候内核在我加载扩展之前就准备好了,所以自定义事件中的代码永远不会执行 Jupyter.notebook.events.one('kernel_ready.Kernel', () => { // Couldn't execute this line, because kernel was already // ready when this

我正在构建一个Jupyter笔记本扩展,当内核在初始化过程中准备就绪时,我需要立即执行一些代码。我正在执行下面的代码,但我注意到有时候内核在我加载扩展之前就准备好了,所以自定义事件中的代码永远不会执行

Jupyter.notebook.events.one('kernel_ready.Kernel', () => {
     // Couldn't execute this line, because kernel was already
     // ready when this event handler was attached
     Jupyter.notebook.kernel.execute(someCode)
});
我可以信任笔记本执行代码而不用担心内核准备就绪吗?我猜可能存在某种类型的队列,因此代码最终会被执行


Jupyter.notebook.kernel.execute(someCode)

我是Javascript的初学者,但也许我可以提供一些信息,因为您的问题部分解决了,我几天前发布了这个问题()

将我的代码放入

Jupyter.notebook.events.one('kernel_ready.Kernel', () => {

在custom.js文件上,我可以保证在加载脚本时执行该脚本。

我完全是Javascript初学者,但也许我可以提供一些信息,因为您的问题已经部分解决,我几天前发布了这个问题()

将我的代码放入

Jupyter.notebook.events.one('kernel_ready.Kernel', () => {

在custom.js文件上,我可以保证在加载脚本时执行该脚本。

在nbextension订阅
kernel\u ready
事件之前,内核可能已完全就绪。在这种情况下,我们可以直接使用内核:

if (Jupyter.notebook.kernel) {
    // ... 
} else {
  Jupyter.notebook.events.one('kernel_ready.Kernel', (e) => {
    // ...
  });
}

在nbextension订阅
kernel\u ready
事件之前,内核可能已完全就绪。在这种情况下,我们可以直接使用内核:

if (Jupyter.notebook.kernel) {
    // ... 
} else {
  Jupyter.notebook.events.one('kernel_ready.Kernel', (e) => {
    // ...
  });
}