deviceInfo = {}; // 全局缓存对象,所有 deviceId 共享同一个缓存
async getDeviceInfo (mac) {
// 仅在 deviceInfo 为空时发起请求(第一次调用后永远为 false)
if (Object.keys(this.deviceInfo).length === 0) {
// 发起请求并保存结果到 this.deviceInfo
}
return this.deviceInfo; // 后续调用直接返回缓存
}
this.deviceInfo 是所有 mac 共享的全局对象,第一次调用后它永远非空,后续所有请求(无论 mac 是否相同)直接返回缓存。所以就会出现,五个不同的对象循环调用getDeviceInfo方法,返回五个相同的结果!!!