Я использую что-то похожее на NodeJS, называемое bondi, оно основано на движке Firefox js. По сути, я получаю эту ошибку, и я полагаю, что это связано с тем, как я ссылаюсь на "this" в функции .Get ниже.
В основном есть инструмент под названием SFtpClient. У него есть метод «Получить», чтобы вывести список содержимого папки, но я хочу изменить прототип для этого, добавив включаемый файл. Мне нужно изменить это так, чтобы это
a / повторяет несколько раз в случае сбоя, и b / имеет рекурсивную функцию вывода списка папок.
Итак, я использовал прототип, чтобы изменить его - переместился .Get в ._Get.
Может кто-нибудь понять, почему я получаю ошибку:
Jan 23 04:51:34 beta bondi: === this._Get is not a function --- Prio(6) Result(0x0) File(/home/nwo/approot/include/sftpclientenh
когда я запускаю код ниже?
Спасибо
SFtpClient.prototype._Get = SFtpClient.prototype.Get;
SFtpClient.prototype.Get = function(Folder, Retries){
//defaults
if(!Retries) Retries = 5;
if(!Folder) Folder = "~/";
//vars
var FileListing = [];
var connect = function(){
//TODO JRF 19.01.2012 : re-enable this when bondi is fixed
// this.HomeDirectory.replace(/\/?$/, "/");
FileListing = this._Get(Folder);
return true;
}
var i = 1;
do{
var res = false;
try {
res = connect();
}catch(e){
Debug.LogInfo(e.message);
}
i++;
Server.Sleep(i*2000);
} while(res==false && i < Retries);
return FileListing;
}