javascript - 将同步 Map 方法转换为异步特征

标签 javascript asynchronous promise async-await

我有大量数据要转换成新格式。

实际上我正在使用 map 方法,但因为它是同步的并且会影响性​​能。

dataFormatted = cmtAllRawdataDB[0].rows.map(elm => new Message(elm, configResult));

有关Message 类的信息,全局格式如下:

export class Data {
  public value: string;
  public date: Date;
  constructor(dbData) {
    this.value = '123';
  }
}

export class Measure {
  public name: string;
  public unit: string;
  public data: Data[];
  constructor(config, dbData) {
    this.name = config.name;
    this.unit = config.value;
    ...
    this.data = [new Data(dbData)];
  }
}

export class Sensor {
  public id: string;
  public label: string;
  public measures: Measure[] = [];
  constructor(dbData, config) {
    this.id = '123';
    this.label = 'SensorType';
    config.unitConfig.map(elm => this.measures.push(new Measure(elm, dbData)));
  }
}

export class Message {
  public id: string;
  ...
  public sensors: Sensor[];
  constructor(dbData: any, config: any) {
    this.id = dbData.value._id;
    ....
    this.sensors = [new Sensor(dbData, config)];
    console.log(this.id, this.arrivalTimestamp);
  }
}

有没有办法异步运行这段代码?

最佳答案

把这个操作放在函数里面,放在settimeout方法里面,只需要10毫秒

var example = () => {
  setTimeout(() => {
    return (dataFormatted = cmtAllRawdataDB[0].rows.map(
      elm => new Message(elm, configResult)
    ));
  }, 10);
};

关于javascript - 将同步 Map 方法转换为异步特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52945413/

相关文章:

Javascript 数组不打印空值

javascript - htmlspecialchars_decode 导致宽度问题

php - 内部动态 JavaScript

javascript - 如何使用 setTimeout 和 Promise 使这段 JS 代码更实用?

javascript - 在 Javascript 异步函数中设置全局变量

javascript - 捕获按键,定向到 Chrome 中的特定元素

python - python函数如何调用并且不等待它完成处理,而该函数必须被调用一次。因此,线程必须停止

node.js - nodejs redis Q promises,如何让它发挥作用?

javascript - 从 Angular 工厂返回数据,返回对象后填充数据

javascript - 在三元条件下返回新的 promise Q