- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试在事件内进行异步调用时遇到了挑战。
这是Nodemailer的代码-我在需要进行异步调用的行中添加了这一行:
let transporter = nodemailer.createTransport({
SES: new aws.SES({
apiVersion: '2010-12-01'
}),
sendingRate: 1 // max 1 messages/second
});
// Push next messages to Nodemailer
transporter.on('idle', () => {
while (transporter.isIdle()) {
// I need to make an async db call to get the next email in queue
const mail = await getNextFromQueue()
transporter.sendMail(mail);
}
});
最佳答案
您可以将回调标记为async
并在其中使用await
。
它是event
处理程序回调这一事实没有区别,因为最后它只是一个普通的Function
。
Node 片段
'use strict'
const EventEmitter = require('events')
const myEmitter = new EventEmitter()
const getDogs = () => {
return new Promise(resolve => {
setTimeout(() => {
resolve(['Woof', 'Woof', 'Woof'])
}, 500)
})
}
myEmitter.on('event', async () => {
const dogs = await getDogs()
console.log(dogs)
})
myEmitter.emit('event')
transporter.on
与
EventEmitter.on
不同-意味着这是
transporter
提供的自定义函数。
Promise
-请记住,将函数标记为
async
会强制该函数始终隐式返回
Promise
。
async
函数包装在
IIFE中。
// ..rest of code from above
myEmitter.on('event', () => {
// wrap into an IIFE to make sure that the callback
// itself is not transformed into a Promise
(async function() {
const dogs = await getDogs()
console.log(dogs)
})()
})
myEmitter.emit('event')
关于node.js - 在事件发射器中使用异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47448567/
我是 Arduino 和这个论坛的新手,这是我除了教程之外的第一个 Arduino 项目。 我正在尝试使用遥控发射器/接收器和 Arudino 来控制伺服。我使用 Arduino 而不是将伺服器直接连
我喜欢听一个特定的广播,我用 vlc 给自己做了一个小发射器,就像这样: #!/bin/sh vlc http://mp3lg.tdf-cdn.com/fip/all/fiphautdebit.mp3
是否有用于发出 YAML 的 C++ 库?维基百科提到了 libyaml 的 c++ 包装器,但链接已断开。 YAML官方网站只提供yaml-cpp ,这也在 this 中提出所以问题,但 cpp-y
我正在尝试将我的 iPhone 设置为广播 iBeacon 信号以供另一部 iPhone 接收。本应接收信号的 iPhone 可以正常工作,但我无法让另一部 iPhone 广播信号。 我正在学习本教程
我正在编写一个网络应用程序,其中多个监听器(Evcentsource SSE 客户端 JS)将连接到我的服务器。我想做的是 为每个连接的监听器存储 SSE 发射器:可以在内存中或通过为每个客户端分配
我想在后端进行串行工作。我想选择 geo_unit 并做另一项工作并向客户端写入响应。 我读了 http://nodejs.org/docs/v0.4.7/api/events.html#events
我从早期就使用 BIRT,但仍然有关于 PDF 发射器的谜语。 短篇小说 : 我可以配置 fontsConfig.xml 以从相对路径或 jar 加载字体吗? 长话: 我们同时使用 FOP 和 BIR
今天我得到了一些很酷的 radio 接收器和发射器,问题是当我输入我想发送的消息时,它会在另一个 arduino 上吐出乱码。 //transmitter #include void setup()
我有一个使用 html canvas 函数创建的形状(四分之一圆): 移动到 LineTo QuadraticCurveTo 如何将形状爆炸成粒子,然后将它们返回形成一个圆圈? 最佳答案 我不会为您编
我正在实现自定义 Birt 发射器,我需要知道单元格、表格或网格的宽度和高度(以像素或点为单位)。如果未在报表设计器中明确设置度量,则会出现此问题。 我试图通过调用 cellContent.getWi
我将给出我正在尝试做的事情的一个小前提。我有一个游戏概念,需要多个玩家围坐在一张 table 旁,有点像扑克牌。 不同播放器之间的正常交互,通过socket.io结合node js很容易处理。 我很难
我是一名优秀的程序员,十分优秀!