如何进行异步调用以发送一个信号推送通知

时间:2018-03-27 12:41:13

标签: javascript node.js onesignal

我想进行异步调用以向每个设备发送推送通知。我有对象数组包含userinfo和设备ID。我必须旋转每个对象,直到完成数组。我不明白该怎么做。我试图通过闭包功能让它等待2秒钟。请帮我摆脱这个。



var userinfo = [{
    userdata: "some info for user 1",
    deviceid: "user device id 1"
  },
  {
    userdata: "some info for user 2",
    deviceid: "user device id 2"
  },
  {
    userdata: "some info for user 3",
    deviceid: "user device id 3"
  }
]

for (var i = 0; i < userinfo.length; i++)(function(t) {
  setTimeout(function() {
    var message = {
      app_id: "my app id",
      contents: {
        "en": userinfo[t].userdata
      },
      include_player_ids: [userinfo[t].deviceid],
    };
    sendNotification(message);
  }, t * 2000)
}(i));
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您可以使用async await功能。

for (var i = 0; i < userinfo.length; i++)( async function(t) {
    var message = await {
      app_id: "my app id",
      contents: {
        "en": userinfo[t].userdata
      },
      include_player_ids: [userinfo[t].deviceid],
    };
    await sendNotification(message);
}(i));

这是Documentation