如何从请求中返回结果,以及在 NodeJS 中执行异步任务但没有回调之后

Posted

技术标签:

【中文标题】如何从请求中返回结果,以及在 NodeJS 中执行异步任务但没有回调之后【英文标题】:How return result from request, and after perform async task but without callback in NodeJS 【发布时间】:2014-01-14 12:46:02 【问题描述】:

ios 应用程序执行向用户发送消息的请求。我想将结果返回给应用程序,然后向用户发送推送通知,我不想等到通知推送成功与否。

app.post("/message", function(req, res, next) 
    User.sendMessages(query, options, function(err, results) 
        res.json(results);
        sendPushNotifications();
    );
);

我该怎么做?

【问题讨论】:

你目前在做什么有什么问题? 在 res.json(results) 之后;应用程序获得响应和其他操作将执行?让我们想象一下 sendPushNotifications() 在很长一段时间内执行。应用程序在此操作完成之前得到响应? 是的。这就是它的工作原理。请记住,节点中发生的所有事情都在一个线程中,这与您可能习惯的其他后端语言不同。所以请求,工作,一切都发生在那个单一的线程中。除非你当然使用集群或类似的东西 谢谢,你是对的! 【参考方案1】:

这就是它的工作原理。

请记住,节点中发生的所有事情都在一个线程中,这与您可能习惯的其他后端语言不同。

请求、工作,一切都发生在那个单一的线程中。当然,除非你使用集群或类似的东西。

【讨论】:

以上是关于如何从请求中返回结果,以及在 NodeJS 中执行异步任务但没有回调之后的主要内容,如果未能解决你的问题,请参考以下文章

如何从 bigquery nodejs api 获取整数?

如何在 NodeJS 中访问 SQL 请求的结果?

如何将值从节点返回到原点(angular2 请求)

在nodejs中使用--user选项卷曲

Nodejs异步编程

Nodejs异步编程