Merge pull request #2719 from takluyver/nb-loaded-promise

Add promise for notebook_loaded.Notebook event
pull/2715/merge
Min RK 9 years ago committed by GitHub
commit 5e5e41b066

@ -1,13 +1,7 @@
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
// Give us an object to bind all events to. This object should be created
// before all other objects so it exists when others register event handlers.
// To register an event handler:
//
// require(['base/js/events'], function (events) {
// events.on("event.Namespace", function () { do_stuff(); });
// });
// Define an object to attach promises to for one-time events.
define(['base/js/events', 'base/js/namespace'], function(events, Jupyter) {
"use strict";

@ -33,6 +33,7 @@ require([
'auth/js/loginwidget',
'notebook/js/maintoolbar',
'notebook/js/pager',
'notebook/js/promises',
'notebook/js/quickhelp',
'notebook/js/menubar',
'notebook/js/notificationarea',
@ -57,6 +58,7 @@ require([
loginwidget,
maintoolbar,
pager,
nb_promises,
quickhelp,
menubar,
notificationarea,

@ -0,0 +1,22 @@
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
// Define promises for notebook events.
define(['base/js/events', 'base/js/promises'], function(events, promises) {
"use strict";
// Promise to be resolved when the notebook is *initially* loaded.
// The event may fire again if the notebook is reloaded later, but this
// promise only tracks the initial load.
promises.notebook_loaded = new Promise(function(resolve, reject) {
events.one('notebook_loaded.Notebook', function() {
resolve();
});
events.one('notebook_load_failed.Notebook', function() {
reject();
});
});
return promises;
});
Loading…
Cancel
Save