我有一个不能按预期工作的异步函数,这里是代码:
const onCreateCoachSession = async (event, context) => {
const { coachSessionID } = context.params;
let coachSession = event.val();
let opentokSessionId = 'prout';
await opentok.createSession({ mediaMode: 'relayed' }, function(
error,
session
) {
if (error) {
console.log('Error creating session:', error);
} else {
opentokSessionId = session.sessionId;
console.log('opentokSessionIdBefore: ', opentokSessionId);
const sessionId = session.sessionId;
console.log('Session ID: ' + sessionId);
coachSession.tokbox = {
archiving: true,
sessionID: sessionId,
sessionIsCreated: true,
};
db.ref(`coachSessions/${coachSessionID}`).update(coachSession);
}
});
console.log('opentokSessionIdEnd: ', opentokSessionId);
};
我的函数 onCreateCoachSession 在 firebase 事件上触发(它是一个云函数),但它并没有结束 opentok.createSession 结束,我不明白为什么我之前放了一个 await 。
谁能知道为什么我的代码直接触发最后一个控制台日志(opentokSessionIdEnd)
这是按 console.log 顺序的屏幕截图:
这可能是我错过的一个简单的异步/等待问题,但我看不到什么。
我提前感谢社区的帮助。
波斯汪
泛舟湖上清波郎朗
相关分类