节点异步瀑布回调已被调用

特里斯坦·特萨拉(Tristan Tzara)

我正在尝试使用async.waterfall从dir中读取一些文件,在我看来我做的不错,但是我得到了指定的错误,并且从未调用过readData函数。怎么了?

var fs = require("fs");
var async = require("async");

var folder = "./files/";

try {
    async.waterfall([
        function readDir(cb) {
            fs.readdir(folder, function(err, files) {
                cb(err, files);
            });
        },
        function loopFiles(files, cb) {
            files.forEach(function(fn) {
                console.log("loop " + fn);
                cb(null, fn);
            });
        },
        function check(fn, cb) {
            console.log("check "+fn);
            fs.stat(folder + fn, function(err, stats) {
                console.log(stats.isFile());
                cb(err, stats, fn);
            });
        },
        function readData(stats, fn, cb) {
            console.log("read "+fn);
            if (stats.isFile()) {
                fs.readFile(folder + fn, "utf-8", function(err, data) {
                    cb(err, data);
                });
            }
        }
    ], function(err, result) {
        if (err) {
            throw err;
        }
       console.log(result);
    });
} catch (err) {
console.log(err);
}
mscdex

问题是,我们在调用cb(null, fn)loopFiles()多次如果files.length > 1您可能需要对每个文件执行单独的操作async.waterfall()或使用其他async.*方法。

另一个问题是,readData()在情况不cb()为的情况下,您没有打电话stats.isFile()给您false

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

节点异步瀑布回调已被调用

来自分类Dev

NodeJS 异步:回调已被调用?

来自分类Dev

不在异步瀑布中调用最终回调有什么危害吗?

来自分类Dev

正在调用节点异步回调以完成操作

来自分类Dev

使用带有参数回调的数组的节点异步瀑布

来自分类Dev

承诺异步瀑布回调方法可能吗?

来自分类Dev

NodeJs 异步瀑布(回调方法不是函数)

来自分类Dev

AsyncNodeJS:错误:回调已被调用

来自分类Dev

async.retry-回调已被调用

来自分类Dev

.load回调已被调用五次

来自分类Dev

节点,异步编程,回调地狱

来自分类Dev

节点脚本等待异步回调

来自分类Dev

瀑布内部的节点异步并行

来自分类Dev

节点 - 在 for 循环中的异步瀑布

来自分类Dev

尝试进行嵌套查询时已调用节点异步回调

来自分类Dev

尝试进行嵌套查询时已调用节点异步回调

来自分类Dev

NodeJS异步:已经调用了回调?

来自分类Dev

等待异步方法中的回调被调用

来自分类Dev

访问异步调用的回调参数

来自分类Dev

NodeJS异步:已经调用了回调?

来自分类Dev

多次异步调用后回调?

来自分类Dev

回调已在异步模块中调用

来自分类Dev

异步 Ajax 调用混淆回调

来自分类Dev

Async.js-ETIMEDOUT和回调已被调用

来自分类Dev

带有异步瀑布/ Node.js的未定义“回调”

来自分类Dev

异步 JS - 瀑布中的函数没有正确执行回调

来自分类Dev

在本机节点的回调中调用回调

来自分类Dev

如何在节点js中创建异步回调?

来自分类Dev

从对象内部的异步回调内部调用函数