0

我需要在 nodejs 应用程序中创建一些 4-5 长度的随机字符。这是我找到的一个模块。

var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
exports.generate = function(length) {
 length = length ? length : 32;
 var string = '';
 for (var i = 0; i < length; i++) {
  var randomNumber = Math.floor(Math.random() * chars.length);
  string += chars.substring(randomNumber, randomNumber + 1);
 }
 return string;
}

但它似乎不是异步的。我需要担心它不是异步的吗?还有其他方法吗?

4

1 回答 1

1

我认为您不必担心它不是异步的(我假设您担心您的代码被阻塞?)。

使用默认长度 (32) 和 1.000.000 次调用的代码的简单基准测试在我的 MBP 上运行大约 1.2 秒,所以速度非常快。

如果你想进一步加快你的代码速度,你可以试试这个:

var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
...
string += chars[randomNumber];

这使我的测试运行速度提高了两倍。

于 2013-04-23T11:06:51.110 回答