#typescript #nodegit
#typescript #nodegit
Вопрос:
Я использую Clone.clone from nodegit
и ищу обратный вызов статуса выполнения. Функция имеет объект CheckoutOptions, который я вызываю следующим образом:
var opts: CloneOptions = {};
opts.checkoutOpts = {
progressCb: function() {
console.log("Foo");
},
}
Но, похоже, это приводит к сбою окна браузера. Кто-нибудь, посмотрев на объявление о 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;
}
Комментарии:
1. вы проверили progressCb в CheckoutOptions
2. Да, смотрите мой первый фрагмент кода
Ответ №1:
Попробуйте инициализировать параметры проверки, используя 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");
};
Комментарии:
1. Спасибо! Хотя обратный вызов на самом деле вызывается не так часто во время процедуры клонирования, у меня это работает. Я добавлю 150 баллов, как только мне будет разрешено его принять