异步等待嵌套相关的Promise调用

时间:2018-11-04 17:27:23

标签: javascript node.js async-await

我试图了解有关异步,等待Promises和所有这些的更多信息,我已经理解了其背后的概念,但是在涉及这些Promises的嵌套逻辑时遇到了麻烦。 从理论上讲,我所理解的是整个异步等待将使您的代码看起来更加同步,这意味着所有期望诺言的结果都是您使用等待的结果。 这段代码的主要目标是从目录列表中返回来自readdirPromisify的目录和文件,过滤并仅给我一个文件列表。使用stat.isFile()。 如果有人可以帮助,我将不胜感激。谢谢!

const fs = require("fs");
const { exec } = require("child_process");
const { promisify } = require("util");
const [, , ...args] = process.argv;
const isOptionDirectory = promisify(fs.stat);
const readdirPromisify = promisify(fs.readdir);
const [packageName] = args;

const test = async function() {
  const dirs = await readdirPromisify(__dirname);
  const files = await dirs.filter(async file => {
    const option = await isOptionDirectory(file);
    return option.isFile();
  });
  return files;
};

console.log(test().then(val => console.log(val)));

1 个答案:

答案 0 :(得分:1)

1) npm install --save @ng-bootstrap/ng-bootstrap 2) import bootstrap style sheet file, into root style.css as below: @import 'https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css'; 不支持诺言。 filter返回的承诺将被视为真实值。

您将要使用async function

Promise.all