在twilio函数中获取回调函数时出错

在twilio函数中获取回调函数时出错,twilio,twilio-functions,Twilio,Twilio Functions,我的调试器不断向我发送此函数的回调错误(请参阅下面的img链接)。我还想继续从我的函数返回studio,studio文档说我需要“成功返回(HTTP 20X)”我缺少什么 exports.handler = function(context, event, callback) { const client = require('twilio')(); const msg = event.Msg; client.messages .create({ body: msg,

我的调试器不断向我发送此函数的回调错误(请参阅下面的img链接)。我还想继续从我的函数返回studio,studio文档说我需要“成功返回(HTTP 20X)”我缺少什么

    exports.handler = function(context, event, callback) {

const client = require('twilio')();
const msg = event.Msg;
client.messages
  .create({
     body: msg,
     from: '+17322222222',
     to: '+13477777777'
   })
  .then(message => console.log(message.sid));
};

如果我在代码末尾插入callback(),我会得到一个成功的返回,但是消息不会被发送

exports.handler = function(context, event, callback) {

const client = require('twilio')();
const msg = event.Msg;

client.messages
  .create({
     body: msg,
     from: '+17322222222',
     to: '+13477777777'
   });

  callback();
};

您需要在消息成功发送后执行回调

这可以使用Promissions或async/await语法完成,如下所示:

exports.handler = function(context, event, callback) {

   let twilioClient = context.getTwilioClient();

   twilioClient.messages
     .create({
       body: 'Hello World',
       to: '+13477777777',
       from: '+17322222222',
     }).then(message =>  {
       console.log(message.sid);
       callback(null, {result: "success"});
     })
    .catch(error => {
       console.log(error);
       callback({result: "error"});
    });
};


您需要在消息成功发送后执行回调

这可以使用Promissions或async/await语法完成,如下所示:

exports.handler = function(context, event, callback) {

   let twilioClient = context.getTwilioClient();

   twilioClient.messages
     .create({
       body: 'Hello World',
       to: '+13477777777',
       from: '+17322222222',
     }).then(message =>  {
       console.log(message.sid);
       callback(null, {result: "success"});
     })
    .catch(error => {
       console.log(error);
       callback({result: "error"});
    });
};


在回调@markokstate之前发送多条消息

exports.handler = function(context, event, callback) {

    const twilioClient = context.getTwilioClient();
    numbers = ['+14075551212','+18025551212'];
    body = event.Body || 'The British are Coming!';
    
    Promise.all(
        numbers.map(number => {
            return twilioClient.messages.create({
                to: number,
                from: '+15095551212',
                body: body
            });
        })
    )
  .then(messages => {
    console.log('Messages sent!');
    callback(null, 'Messages sent!');   
  })
  .catch(err => {
      console.error(err);
      callback(null, 'ERROR');
  });
};

在回调@markokstate之前发送多条消息

exports.handler = function(context, event, callback) {

    const twilioClient = context.getTwilioClient();
    numbers = ['+14075551212','+18025551212'];
    body = event.Body || 'The British are Coming!';
    
    Promise.all(
        numbers.map(number => {
            return twilioClient.messages.create({
                to: number,
                from: '+15095551212',
                body: body
            });
        })
    )
  .then(messages => {
    console.log('Messages sent!');
    callback(null, 'Messages sent!');   
  })
  .catch(err => {
      console.error(err);
      callback(null, 'ERROR');
  });
};

添加
.error:(e)=>console.error(e)
之后,然后捕获并记录来自create()承诺的错误。您可以插入我发布的代码吗,我是新成员我添加了回调函数,但消息没有发送添加
。error:(e)=>console.error(e)
之后,然后捕获并记录来自create()的错误promise.你能在我发布的代码中插入吗?我是新来的我添加了回调函数,但消息没有发送。你能这样做吗?但在必须回调()之前发送多条消息@您可以这样做,但在必须回调()之前发送多条消息吗@艾伦