将 async () => { await JPush.getRegistrationID(result => { console.log('registratioId', result?.registerID), setRegistratioId(result?.registerID); }); }转化成同步函数
时间: 2024-02-28 17:52:50 浏览: 78
你可以使用 Promise 来将异步函数转换为同步函数。可以这样修改:
```
async function getRegistrationIDSync() {
try {
const result = await new Promise((resolve, reject) => {
JPush.getRegistrationID(result => {
if (result?.registerID) {
resolve(result);
} else {
reject(new Error('Registration ID not found'));
}
});
});
console.log('registratioId', result?.registerID);
setRegistratioId(result?.registerID);
return result?.registerID;
} catch (error) {
console.error(error);
return null;
}
}
```
这里使用了 Promise 来包装原始的异步函数,并使用 try-catch 来处理错误。返回值是注册 ID,如果出现错误则返回 null。你可以通过调用 `getRegistrationIDSync()` 来获取注册 ID,它将以同步的方式运行。