微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过nodegit克隆存储库时如何获得状态进度?

如何解决通过nodegit克隆存储库时如何获得状态进度?

我使用nodegit中的Clone.clone,并且正在寻找进度状态回调。该函数一个CheckoutOptions对象,我这样称呼它:

var opts: CloneOptions = {};
opts.checkoutopts = {
    progressCb: function() {
        console.log("Foo");
    },}

但这似乎使browserWindow崩溃。有没有人通过看Checkoutoptions的声明我可能做错了什么?

注意,CheckoutoptionsCloneOptions的成员


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");
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。