Netlify lambda函数拒绝在nodemailer传输器函数内部运行回调并异步运行

问题描述

我有一个lambda函数,可使用nodemailer从联系表发送电子邮件。我遇到的问题是lambda函数拒绝让我将回调函数放到transporter.send邮件函数中,如本例所示。

https://github.com/kicholen/makeithappen/blob/79b9c8f3a7238dc75308f9a69d769d7cda7dd522/func/sendMail.js

#include <stdio.h>
#include <stdlib.h>

void merge_sort(int *arr,int strt,int end);
void merge(int *arr,int mid,int end);
void print_arr(int *arr,int arr_len);

int main(void) {
  int arr[] = { 8,1,10,54,2,-3,5,70,60,11,4 };
  int arr_len = sizeof(arr) / sizeof(arr[0]); 
  print_arr(arr,arr_len);
  merge_sort(arr,arr_len);
  print_arr(arr,arr_len);
}

void print_arr(int *arr,int arr_len) {
  for (int i = 0; i < arr_len; i++) {
    printf("%i ",arr[i]);
  }
  printf("\n");
}

void merge_sort(int *arr,int end) {
  if (end - strt > 1) {
    // avoid potential arithmetic overflow on start+end
    int mid = strt + (end - strt) / 2;
    merge_sort(arr,strt,mid);
    merge_sort(arr,mid,end);
    merge(arr,end); 
  }
}

void merge(int *arr,int end) {
  int *tmp_arr = malloc(sizeof(*tmp_arr) * (end - strt));
  //int tmp_arr[end - strt];
  int i = strt;
  int j = 0;
  int k = mid;
  while (i < mid && k < end) {
    if (arr[i] <= arr[k]) {
      tmp_arr[j++] = arr[i++];
    } else {
      tmp_arr[j++] = arr[k++];
    }
  }
  while (i < mid) {
      tmp_arr[j++] = arr[i++];
  }
  // copying the remaining elements from the right half is not needed as they
  // are already in the proper place
  //while (k < end) {
  //    tmp_arr[j++] = arr[k++];
  //}
  for (int m = 0; m < j; m++) {
    arr[strt + m] = tmp_arr[m];
  }
  free(tmp_arr);
}

但是,当我尝试执行相同的操作时,即使在发送电子邮件之后,lambda函数仍会无限期运行。我希望像示例中一样,在send mail函数内部具有回调函数,以便可以将信息或错误消息发送回客户端。现在,我在transporter.sendmail函数之外具有回调函数,但是现在执行回调函数的速度比可以执行的transporter.sendmail函数要快。

  transporter.sendMail({
    from: process.env.MAIL_LOGIN,to: process.env.MAIL_TO,subject: process.env.SUBJECT + new Date().toLocaleString(),text: event.body
},function(error,info) {
    if (error) {
        callback(error);
    } else {
        callback(null,{
                statusCode: 200,body: "Ok"
            });
    }
  });

设置lambda时,我做错什么了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)