回调已在async.foreachSeries中调用

时间:2019-01-24 16:46:45

标签: javascript node.js

在我的函数中,由于回调已被调用,因此出现错误。我不确定为什么会出现此问题,因为我没有在async.forEachSeries中调用回调。

var invalid = true;
async.forEachSeries(book.titles, function (title, titleCallback) {

            authorizeContext(permission,contextSet, book.bookId, function (error, validContext) {
                if (error) {

                    isvalid = false;
                    titleCallback("User is not authorized");
                } else if (validContext) {
                    logger.info("user is authorized")
                    isvalid = true;
                    titleCallback(null);
                } else {
                    logger.info("c");
                    isvalid = false;
                    titleCallback("User is not authorized");
                }
            });
        }, function (err) {
            if (err && isvalid) {
                logger.info("inside error"+JSON.stringify(err));
                callback(err, null)
            } else {
                logger.info("inside result"+isvalid);
                callback(null, isvalid)
            }
        });

1 个答案:

答案 0 :(得分:0)

上面的方法是正确的,并且在回调中没有问题。问题出在名为authorizeContext()的方法中。该方法正在foreach循环下进行异步调用,因此用async.foreach代替foreach循环对我有用。