小编Gui*_*bbe的帖子

Promise.all返回一个undefined数组

我遇到函数返回未定义数组的问题.

这是代码:

classMethods.getQueries = function(models, dbId, dateStart, dateEnd) {
  return new Promise(function(resolve, reject) {

    /* Fetch database .... */
    .then(extractQueries, reject)
    .then(sortQueries, reject)
    .then(onlyTen, reject)
    .then(addText, reject)
    .then(function(queries) {
      console.log('getQueries finished', queries) ;  //array of 10 undefined! 
      resolve(queries);
    }, reject);

    /* Functions here .... */

  });
};
Run Code Online (Sandbox Code Playgroud)

在addText函数之前,一切都很好:

function addText(queries) {
  return Promise.all(queries.map(function(query) {

    models.queries.findById(query.queryId, { raw: true, attributes: ['query'] })
    .then(function(queryFetched) {
      query.text = queryFetched.query;
      console.log(query);
      return Promise.resolve(query);
    }, function(error) {
       return Promise.reject(error);
    });

  }));
};
Run Code Online (Sandbox Code Playgroud)

这给了我一个像这样的东西:

getQueries finished …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous for-loop node.js promise

8
推荐指数
1
解决办法
6384
查看次数

获取持续时间以微秒为单位

考虑例子:

final Duration twoSeconds = Duration.ofSeconds(2);
//      final long microseconds = twoSeconds.get(ChronoUnit.MICROS); throws UnsupportedTemporalTypeException: Unsupported unit: Micros
final long microseconds = twoSeconds.toNanos() / 1000L;
System.out.println(microseconds);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来获得持续时间以微秒为单位,而不是手动从纳秒转换.

duration java-8

6
推荐指数
2
解决办法
477
查看次数