Promise.all弹出“ TypeError:undefined不可迭代(无法读取属性Symbol(Symbol.iterator)属性)”

时间:2020-09-23 20:08:00

标签: node.js reactjs promise typeerror

我一直在使用React Webapp来发送大量SMS消息。基本摘要:上传CSV文件,从中提取电话号码并映射它们,然后可以使用Twilio将文本发送到电话号码。我上次测试时,一切正常。

由于各种原因,我已经有一段时间没有接触过应用程序的那部分了。看完手机后,我上一次实际测试SMS功能的时间是5月26日。今天,当我进行测试时,我在终端中收到以下错误消息:

TypeError:undefined不可迭代(无法读取属性Symbol(Symbol.iterator))

在Function.all()

在/ Users / [me] /furlane_tool/client/server/index.js:30:11

有问题的行是Promise.all行。我从六月开始打开了一个较旧的版本(我可以访问的最旧版本),并且我必须对node进行一些更新才能使某些功能正常工作(即eslint)。它仍然显示错误。当我将行更改为小写的“ promise”作为测试时,我收到“ ReferenceError:未定义promise”。

我想知道从那时起,Node或React是否有所变化,以及它们如何处理Promise,或者我是否在尝试使其他不相关的功能正常工作时弄乱了代码。它确实在终端中映射了数字。

相关代码:

app.post('/test', (req, res) => {
  res.header('Content-Type', 'application/json');
  const numbers = req.body.to;
    console.log("This is the to numbers:" + numbers);


  Promise.all(
    console.log(numbers[0]),
    numbers[0].map(number => {
      console.log("Numbers mapped:", number);
      return client.messages.create({
        to: number,
        from: process.env.TWILIO_PHONE_NUMBER,
        body: req.body.body
      });
    })
  )
    .then(messages => {
      console.log('Messages sent!');
    })
    .catch(err => console.error(err));
});

让我知道您是否需要代码的任何其他部分!

1 个答案:

答案 0 :(得分:1)

Promise.all()应该带有数组参数