6

タイムアウト後に電子メールを送信するために、Meteor を使用して非常に単純なサーバーを作成しました。タイムアウトを使用すると、メッセージは正常に送信されますが、エラーがスローされます: [Error: Can't wait without a fiber].

これが私のコードです:

if (Meteor.isServer) {
  Meteor.startup(function () {
    // <DUMMY VALUES: PLEASE CHANGE>
    process.env.MAIL_URL = 'smtp://me%40example.com:PASSWORD@smtp.example.com:25';
    var to = 'you@example.com'
    var from = 'me@example.com'
    // </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)
      }
    }
  })
}

Meteor.wrapAsyncファイバーの作成に使用できることを理解しています。ただしwrapAsync、呼び出すコールバックがあることを期待しており、コールバックをEmail.send使用していません。

エラーを取り除くにはどうすればよいですか?

4

1 に答える 1