本文整理汇总了TypeScript中rx-jupyter.contents.get方法的典型用法代码示例。如果您正苦于以下问题:TypeScript contents.get方法的具体用法?TypeScript contents.get怎么用?TypeScript contents.get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rx-jupyter.contents
的用法示例。
在下文中一共展示了contents.get方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: switchMap
switchMap(action => {
if (!action.payload || typeof action.payload.filepath !== "string") {
return of({
type: "ERROR",
error: true,
payload: { error: new Error("fetching content needs a payload") }
}) as any;
}
const state: any = state$.value;
const host: any = selectors.currentHost(state);
// Dismiss any usage that isn't targeting a jupyter server
if (host.type !== "jupyter") {
return empty();
}
const serverConfig: ServerConfig = selectors.serverConfig(host);
return contents
.get(
serverConfig,
(action as actions.FetchContent).payload.filepath,
(action as actions.FetchContent).payload.params
)
.pipe(
tap(xhr => {
if (xhr.status !== 200) {
throw new Error(xhr.response.toString());
}
}),
map(xhr => {
if (typeof xhr.response === "string") {
throw new Error(`Invalid API response: ${xhr.response}`);
}
return actions.fetchContentFulfilled({
filepath: action.payload.filepath,
model: xhr.response,
kernelRef: action.payload.kernelRef,
contentRef: action.payload.contentRef
});
}),
catchError((xhrError: any) =>
of(
actions.fetchContentFailed({
filepath: action.payload.filepath,
error: xhrError,
kernelRef: action.payload.kernelRef,
contentRef: action.payload.contentRef
})
)
)
);
})
示例2: empty
//.........这里部分代码省略.........
};
} else if (content.type === "file") {
serializedData = content.model.text;
saveModel = {
content: serializedData,
type: content.type,
format: "text"
};
} else {
// We shouldn't save directories
return empty();
}
switch (action.type) {
case actions.DOWNLOAD_CONTENT: {
// FIXME: Convert this to downloadString, so it works for both files & notebooks
if (
content.type === "notebook" &&
typeof serializedData === "object"
) {
downloadString(
stringifyNotebook(serializedData),
filepath || "notebook.ipynb",
"application/json"
);
} else if (
content.type === "file" &&
typeof serializedData === "string"
) {
downloadString(
serializedData,
filepath,
content.mimetype || "application/octet-stream"
);
} else {
// This shouldn't happen, is here for safety
return empty();
}
return of(
actions.downloadContentFulfilled({
contentRef: action.payload.contentRef
})
);
}
case actions.SAVE: {
const serverConfig: ServerConfig = selectors.serverConfig(host);
// Check to see if the file was modified since the last time we saved
// TODO: Determine how we handle what to do
// Don't bother doing this if the file is new(?)
return contents.get(serverConfig, filepath, { content: 0 }).pipe(
// Make sure that the modified time is within some delta
mergeMap(xhr => {
// TODO: What does it mean if we have a failed GET on the content
if (xhr.status !== 200) {
throw new Error(xhr.response);
}
const model = xhr.response;
const diskDate = new Date(model.last_modified);
const inMemoryDate = content.lastSaved
? new Date(content.lastSaved)
: // FIXME: I'm unsure if we don't have a date if we should default to the disk date
diskDate;
const diffDate = diskDate.getTime() - inMemoryDate.getTime();
if (Math.abs(diffDate) > 600) {
return of(
actions.saveFailed({
error: new Error("open in another tab possibly..."),
contentRef: action.payload.contentRef
})
);
}
return contents.save(serverConfig, filepath, saveModel).pipe(
map((xhr: AjaxResponse) => {
return actions.saveFulfilled({
contentRef: action.payload.contentRef,
model: xhr.response
});
}),
catchError((error: Error) =>
of(
actions.saveFailed({
error,
contentRef: action.payload.contentRef
})
)
)
);
})
);
}
default:
// NOTE: Flow types and our ofType should prevent reaching here, this
// is here merely as safety
return empty();
}
}