Faker一直显示同一张图片,如何避免?

use*_*221 3 javascript json npm faker

我正在使用 faker 来制作随机对象数组,如下所示:

{
  "image":  faker.random.arrayElement([
    faker.image.nature(), 
    faker.image.city(), 
    faker.image.food() 
  ]),
  "price": faker.random.number({ min: 20, max: 300 }),
  "beds": faker.random.number({ min: 1, max: 15 }),
  "type": faker.random.arrayElement([ 
    "Entire home", 
    "Private room", 
    "Shared room" 
  ])
}
Run Code Online (Sandbox Code Playgroud)

实际上,当像这样制作 12 个元素时会发生什么 - 所有数据都是随机的,但不是图像,每次加载都是一样的。

每次刷新都有其他照片,但数组中的所有元素都包含相同的图像。

我该怎么办?

Jak*_*iec 6

准确地说,faker.js将返回相同的URL,例如,http://lorempixel.com/640/480/nature用于faker.image.nature()调用,因为它是lorempixel.com服务的请求返回随机图像。

如果您指的是看到完全相同的图像,那么这可能与您的浏览器缓存响应有关(如果是这样,请尝试在开发期间禁用缓存或向图像添加随机查询字符串,例如'image': `${faker.image.nature()}?random=${Date.now()}`)。

所以要回答你的问题 - 你不需要做任何事情。您最终会获得随机图像(应请求到 lorempixel.com)。

  • 实际上,我使用了````${faker.image.nature()}?random=${Math.round(Math.random() * 1000)}````以获得更多随机性 (4认同)