Ich habe einen sehr einfachen Server mit Meteor erstellt, um eine E-Mail nach einem Timeout zu senden. Wenn ich ein Zeitlimit verwende, wird die Nachricht erfolgreich gesendet, aber ein Fehler wird ausgelöst: [Error: Can't wait without a fiber]
.Meteor [Fehler: Kann nicht ohne eine Faser] nach einem Anruf an Email.Send
Hier ist mein Code:
if (Meteor.isServer) {
Meteor.startup(function() {
// <DUMMY VALUES: PLEASE CHANGE>
process.env.MAIL_URL = 'smtp://me%40example.com:[email protected]:25';
var to = '[email protected]'
var from = '[email protected]'
// </DUMMY>
//
var subject = 'Message'
var message = "Hello Meteor"
var eta_ms = 10000
var timeout = setTimeout(sendMail, eta_ms);
console.log(eta_ms)
function sendMail() {
console.log("Sending...")
try {
Email.send({
to: to,
from: from,
subject: subject,
text: message
})
} catch (error) {
console.log("Email.send error:", error)
}
}
})
}
Ich verstehe, dass ich Meteor.wrapAsync
verwenden könnte eine Faser zu erstellen. Aber wrapAsync
erwartet, dass es einen Rückruf zum Anrufen gibt, und Email.send
verwendet keinen Rückruf.
Was soll ich tun, um den Fehler loszuwerden?