本文整理汇总了TypeScript中rx-jupyter.sessions类的典型用法代码示例。如果您正苦于以下问题:TypeScript sessions类的具体用法?TypeScript sessions怎么用?TypeScript sessions使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了sessions类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: concatMap
concatMap((action: actions.KillKernelAction) => {
const state = state$.value;
const host = selectors.currentHost(state);
if (host.type !== "jupyter") {
// Dismiss any usage that isn't targeting a jupyter server
return empty();
}
const serverConfig: ServerConfig = selectors.serverConfig(host);
const kernel = selectors.currentKernel(state);
if (!kernel) {
return of(
actions.killKernelFailed({
error: new Error("kernel not available for killing"),
kernelRef: action.payload.kernelRef
})
);
}
if (kernel.type !== "websocket" || !kernel.id || !kernel.sessionId) {
return of(
actions.killKernelFailed({
error: new Error(
"websocket kernel epic can only kill websocket kernels with an id"
),
kernelRef: action.payload.kernelRef
})
);
}
// TODO: If this was a kernel language change, we shouldn't be using this
// kill kernel epic because we need to make sure that creation happens
// after deletion
return sessions.destroy(serverConfig, kernel.sessionId).pipe(
map(() =>
actions.killKernelSuccessful({
kernelRef: action.payload.kernelRef
})
),
catchError(err =>
of(
actions.killKernelFailed({
error: err,
kernelRef: action.payload.kernelRef
})
)
)
);
})
示例2: mergeMap
mergeMap(({ response }) => {
const { id: kernelId } = response;
const sessionPayload = {
kernel: { id: kernelId, name: kernelSpecName }
};
// The sessions API will close down the old kernel for us if it is
// on this session
return sessions.update(serverConfig, sessionId, sessionPayload).pipe(
mergeMap(({ response: session }) => {
const kernel: RemoteKernelProps = Object.assign(
{},
session.kernel,
{
type: "websocket",
sessionId,
cwd,
channels: kernels.connect(
serverConfig,
session.kernel.id,
sessionId
),
kernelSpecName
}
);
return of(
actions.launchKernelSuccessful({
kernel,
kernelRef,
contentRef: action.payload.contentRef,
selectNextKernel: true
})
);
}),
catchError(error =>
of(actions.launchKernelFailed({ error, kernelRef, contentRef }))
)
);
}),
示例3: mergeMap
mergeMap(({ response }) => {
const filepath: string = response.path;
const sessionPayload: SessionPayload = {
kernel: {
id: null,
name: ks.name
},
name: "",
path: filepath,
type: "notebook"
};
return forkJoin(
// Get their kernel started up
sessions.create(serverConfig, sessionPayload),
// Save the initial notebook document
contents.save(serverConfig, filepath, {
content: notebook,
type: "notebook"
})
);
}),
示例4: switchMap
switchMap((action: actions.LaunchKernelByNameAction) => {
const state = state$.value;
const host = selectors.currentHost(state);
if (host.type !== "jupyter") {
// Dismiss any usage that isn't targeting a jupyter server
return empty();
}
const serverConfig: ServerConfig = selectors.serverConfig(host);
const {
payload: { kernelSpecName, cwd, kernelRef, contentRef }
} = action;
const content = selectors.content(state, { contentRef });
if (!content || content.type !== "notebook") {
return empty();
}
// TODO: Create a START_SESSION action instead (?)
const sessionPayload = {
kernel: {
id: null,
name: kernelSpecName
},
name: "",
// TODO: Figure where the leading slash comes from in the content store
path: content.filepath.replace(/^\/+/g, ""),
type: "notebook"
};
// TODO: Handle failure cases here
return sessions.create(serverConfig, sessionPayload).pipe(
mergeMap(data => {
const session = data.response;
const sessionId = castToSessionId(session.id);
const kernel: RemoteKernelProps = Object.assign({}, session.kernel, {
type: "websocket",
info: null,
sessionId,
cwd,
channels: kernels.connect(
serverConfig,
session.kernel.id,
sessionId
),
kernelSpecName
});
kernel.channels.next(kernelInfoRequest());
return of(
actions.launchKernelSuccessful({
kernel,
kernelRef,
contentRef: action.payload.contentRef,
selectNextKernel: true
})
);
}),
catchError(error => {
return of(actions.launchKernelFailed({ error }));
})
);
})