gpt4 book ai didi

javascript - 如何多次调用 sendToDevice 作为函数结果?

转载 作者:行者123 更新时间:2023-12-03 01:29:47 26 4
gpt4 key购买 nike

我有一个 Firebase Cloud Functions 脚本,我想在其中向用户发送推送通知。当我只发送一次到由函数返回的一组指定的 token 数组时,它工作正常:

return getTokens(array1).then(tokens => {
return (admin.messaging().sendToDevice(tokens, payload));
});

但是,我似乎无法弄清楚如何使用 getTokens 函数的不同输入多次执行此操作。我需要做这样的事情:

return getTokens(array1).then(tokens => {
return (admin.messaging().sendToDevice(tokens, payload));
});

return getTokens(array2).then(tokens => {
return (admin.messaging().sendToDevice(tokens, payload));
});

当然,上述解决方案失败了,因为第二个 return then 对是无法访问的代码,但我不知道如何在 JavaScript 中正确执行此操作。

如何才能顺利处理这个问题?请提前原谅,如果我问的是显而易见的问题,我对 JavaScript 还很陌生。

编辑

我尝试了以下代码:

    Promise.all([getTokens(inputArray1), getTokens(inputArray2)]).then(results => {
const tokens1 = results[0].val();
const tokens2 = results[1].val();
const promises = [];
promises.push(admin.messaging().sendToDevice(tokens1, payload));
promises.push(admin.messaging().sendToDevice(tokens2, payload));
return Promise.all(promises);
});

它产生以下错误:预期 catch() 或返回

最佳答案

这就是你的做法:

return Promise.all([admin.database().ref(`/tokensArray1`).once('value'), admin.database().ref(`tokensArray2`).once('value')]).then(results => {
const tokensArray1 = results[0].val();
const tokensArray2 = results[1].val();
const promises = [];
let payload = {
notification: {
title: 'title',
body: 'msg',
icon: 'default'
}
};
promises.push(admin.messaging().sendToDevice(tokensArray1, payload));
promises.push(admin.messaging().sendToDevice(tokensArray2, payload));
return Promise.all(promises);
});

关于javascript - 如何多次调用 sendToDevice 作为函数结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51358705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com