Возвращаемые значения окружения круглой скобки

exec() вернет обещание, если обратный вызов не предоставляется. Таким образом, следующий шаблон очень удобен и универсален - он может прекрасно обрабатывать обратные вызовы или обещания:

function findAll(query, populate, cb) {

  let q = Response.find(query);

  if (populate && populate.length > 0) {
    q = q.populate(populate);
  }

  // cb is optional, will return promise if cb == null
  return q.lean().exec(cb);

}

Я рекомендую использовать обещания Bluebird с Mongoose, чтобы сделать это, используйте этот вызов:

const mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
67
задан prakash 2 October 2008 в 12:02
поделиться

7 ответов

Действительно нет причины..., это - просто старое соглашение.

Для оставления свободного места программисты часто делали бы, заключительная математика в возвратной линии вместо на своей собственной строке и parens удостоверяется, должны главным образом там облегчить видеть, что это - отдельный оператор, который возвращается, как это:

return (x+i*2);

вместо

int y = x+i*2;
return y;

круглая скобка стала привычкой, и она придерживалась.

56
ответ дан Adam Haile 7 November 2019 в 10:35
поделиться

Практическое, но вряд ли, повод - то, при помещении круглой скобки вокруг значения можно определить возврат как макрос, и затем ввести некоторый регистрирующийся код для наблюдения всех возвратов.

47
ответ дан user10392 7 November 2019 в 10:35
поделиться

При возврате-1 как в Вашем экс-пререкающийся, я думаю, что это более читаемо с круглой скобкой, потому что минус более видимо:

return 1

или

return -1

или

return (-1)
8
ответ дан Stein G. Strindhaug 7 November 2019 в 10:35
поделиться

Существует несколько причин:

  1. if/while/for/etc. являются всеми ключевыми словами управления, которые должны иметь parens. Таким образом, часто кажется естественным всегда поместить их на возврат также.

  2. sizeof является единственным другим ключевым словом, которое может или иметь их или нет, за исключением того, что в некоторых случаях Вы должны использование parens. Таким образом, легче выработать привычку всегда использования parens. для sizeof, который подразумевает логику: если Вы можете, всегда сделать.

  3. case/goto являются единственными ключевыми словами, где Вы никогда не используете parens...., и люди склонны думать о тех как об особых случаях (и как они оба для положения из других ключевых слов управления, особенно goto).

13
ответ дан James Antill 7 November 2019 в 10:35
поделиться

Мой персональный стиль должен использовать круглые скобки, если существует сложное выражение; например,

return (a + b);

, но не использовать их, если выражение является простым термином

return a;

, я не могу сказать, почему я делаю это тот путь; просто что-то я взял давно.

Между прочим, я думаю что то, чтобы заставлять его быть похожим на вызов функции, как это:

return(a);  // ugh

невероятно ужасно и просто неправильно.

23
ответ дан Kristopher Johnson 7 November 2019 в 10:35
поделиться

Я работал по крайней мере с одним программистом, который думал, возвращаются , был некоторый специальный вид вызова функции и был удивлен, когда он видел, что мой код соответствовал без parens.

2
ответ дан AShelly 7 November 2019 в 10:35
поделиться

Как часто случай при использовании круглой скобки, я думаю, что это только для удобочитаемости (например, вызовы метода поддержки Ruby w/o круглая скобка, включающая аргументы, но недавние книги и статьи советуют иначе).

2
ответ дан RastaJedi 7 November 2019 в 10:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: