我想进行异步调用以向每个设备发送推送通知。我有对象数组包含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;
答案 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));