我遇到函数返回未定义数组的问题.
这是代码:
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) 考虑例子:
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)
我想知道是否有更好的方法来获得持续时间以微秒为单位,而不是手动从纳秒转换.