javascript - 第一个函数卡在 async.js 中

标签 javascript node.js async.js

我尝试在我的 Node.js 项目中使用 async 执行一系列事件。如下:

server.js:

var express = require('express');
var async = require('async');

...

app.get('/my_page', function (req, res) {
    async.series([
        function() { console.log("calling foo()"); },
        function() { foo(); },
        function() { console.log("foo() done"); },
    ]);
    res.render('my_page', {});
}

但我只得到第一个控制台输出,并且它被卡住了。function()之前是function(callback)。我认为它正在等待返回一个值,但删除它们并不会改变情况..

我做错了什么? (我是 Node.js 的新手)

感谢您的帮助,

最佳答案

请阅读文档。每个函数应该得到 callback作为参数,应该调用callback一旦完成,就告诉async是时候转到下一个函数了。所以你应该有这样的东西:

function(callback) { 
    console.log("calling foo()"); 
    callback();
},

如果其中一个函数出现错误,请调用 callback将错误作为第一个参数。如果你想要res.render('my_page', {});仅在执行最后一个函数后执行,将其包装在函数中并将其作为 async.series 的第二个参数.

当然,如果没有一个函数是异步的,您应该考虑不使用 async .

关于javascript - 第一个函数卡在 async.js 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021541/

相关文章:

javascript - 从 react 组件卸载时卸载纯粹的 strip

javascript - 从输入字段中获取值并将其传递给 Paypal

javascript - node.js mySQL 获取记录

javascript - 如何将 async.mapseries 与数组一起使用(保存数组)

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

Nodejs/async 中的 JavaScript 变量提升

javascript - 如何在 UnderscoreJS 中动态使用 pick() 方法

javascript - imacros,我正在尝试从网页中提取图像文件的名称

javascript - 对象数组获得具有唯一 ID 的总计

node.js - 与断言(assert.ok)相比,assert.equal有什么优势吗?