typescript - 通过 nodegit 克隆 repo 时如何获取状态进度?
问题描述
我使用Clone.clone fromnodegit
并且正在寻找进度状态回调。该函数有一个CheckoutOptions对象,我这样称呼它:
var opts: CloneOptions = {};
opts.checkoutOpts = {
progressCb: function() {
console.log("Foo");
},
}
但这似乎使 BrowserWindow 崩溃。有没有人通过查看CheckoutOptions
我可能做错的声明?
注意,CheckoutOptions
是会员CloneOptions
export class CheckoutOptions {
version?: number;
checkoutStrategy?: number;
disableFilters?: number;
dirMode?: number;
fileMode?: number;
fileOpenFlags?: number;
notifyFlags?: number;
notifyCb?: any;
notifyPayload?: undefined;
progressCb?: any;
progressPayload?: undefined;
paths?: Strarray | string | string[];
baseline?: Tree;
baselineIndex?: Index;
targetDirectory?: string;
ancestorLabel?: string;
ourLabel?: string;
theirLabel?: string;
perfdataCb?: any;
perfdataPayload?: undefined;
[key: string]: any;
}
export class CloneOptions {
version?: number;
checkoutOpts?: CheckoutOptions;
fetchOpts?: FetchOptions;
bare?: number;
local?: number;
checkoutBranch?: string;
repositoryCbPayload?: any;
remoteCbPayload?: any;
}
解决方案
尝试使用new CheckoutOptions()
而不是仅使用空对象来初始化结帐选项{}
。
此版本有效:
var opts = {};
opts.checkoutOpts = new CheckoutOptions();
opts.checkoutOpts.progressCb = function(){
console.log("Foo");
};
这个版本崩溃了:
var opts = {};
opts.checkoutOpts = {};
opts.checkoutOpts.progressCb = function(){
console.log("Foo");
};
推荐阅读
- python-3.x - 如何重试特定异常的请求
- javascript - Promise.all 以随机顺序返回数据
- java - 如何在 Apache Sling 中设置 Servlet 初始化参数?
- azure - 启动 Azure cosmos db 模拟器时显示无法添加防火墙规则设置。请使用/NoFirewall 选项重新启动 Azure Cosmos 模拟器
- c# - 为什么 Fiddler 会影响响应的编码?
- vue.js - 无法在 Storybook 自己的模板中使用 Pug
- python - Python steamlit 选择框菜单返回字符串,但我需要 dict 或 list
- python - sklearn 自定义变压器拟合问题
- ios - 来自委托方法的值传递是 nil Swift
- mysql - MySQL表更新后获取受影响行的数据