Какой более полный метод должен возвращать в модуле чтения Node.js, если нечего сопоставлять?

Это не упоминается в документах http://nodejs.org/api/readline.html.


person jiyinyiyong    schedule 25.02.2014    source источник
comment
это упоминается в документах, обратите больше внимания на пример, он должен возвращать массив.   -  person Gntem    schedule 25.02.2014
comment
Да массив, иначе было бы исключение. Но что из них элементы, если нечего доделывать?   -  person jiyinyiyong    schedule 25.02.2014
comment
это необязательный параметр функции. В обычном вызове line (ввод пользователя) передается в качестве первого параметра, и то, что он вернет, явно зависит от вас. Элементы должны выглядеть так, [[str1,str2],UserInput]   -  person Gntem    schedule 25.02.2014
comment
Да. Но как насчет того, что нет кандидатов? В моих проектах line равен xxxx, и я не хочу, чтобы completer что-либо делал с <tab>, в настоящее время он возвращает [[], null], github.com/Cirru/cirru-shell/blob/master/coffee/ Но есть ли предлагаемое решение для этого.   -  person jiyinyiyong    schedule 26.02.2014
comment
хорошо, если нет кандидатов, вы можете показать все доступные команды или первые 10 или 20, пока пользователь не начнет снова печатать.   -  person Gntem    schedule 26.02.2014
comment
Нет. Предположим, что текущая строка print valv. Посмотрите на valv, который должен быть частью value. Это опечатка. Я не хочу, чтобы какие-либо кандидаты были напечатаны.   -  person jiyinyiyong    schedule 26.02.2014


Ответы (1)


Читая такой код в модуле readline, можно просто передать []:

var completions = rv[0],
    completeOn = rv[1];  // the text that was completed
if (completions && completions.length) {
  // Apply/show completions.
  if (completions.length === 1) {
    self._insertString(completions[0].slice(completeOn.length));
  } else {
    self.output.write('\r\n');

когда completions будет undefined, ничего не последует.

person jiyinyiyong    schedule 26.02.2014