await后面赋值失败了,但是在await前面又是正常赋值的如何在await后面赋值?


const emit = defineEmits(["changeHopid"]);

// 初始化所有医院
const initHop = async () => {
    try {
        // emit("changeHopid", 1);
        const { code, data } = await getAllHosp();
        if (code !== 200) return ElMessage.error("数据获取失败");
        emit("changeHopid", data.data[0].id);
    } catch (e) {
        ElMessage.error("数据获取失败");
    }
};


 
const emit = defineEmits(["changeHopid"]);
const initHop = async () => {
    try {
        const { code, data } = await getAllHosp();
        if (code !== 200) {
            return ElMessage.error("失败");
        }
        //   await后面  赋值
        const newData = data.data[0];
        emit("changeHopid", newData.id);
    } catch (e) {
        ElMessage.error("失败");
    }
};

try...catch...finally

【以下回答由 GPT 生成】

要在await后面成功进行赋值操作,你可以使用Promise.resolve()来包装emit方法,以确保在await后面进行赋值。以下是示例代码:

const emit = defineEmits(["changeHopid"]);

// 初始化所有医院
const initHop = async () => {
    try {
        const { code, data } = await getAllHosp();
        if (code !== 200) return ElMessage.error("数据获取失败");
        await Promise.resolve(emit("changeHopid", data.data[0].id));
    } catch (e) {
        ElMessage.error("数据获取失败");
    }
};

通过使用Promise.resolve(),你可以将emit方法转换为一个Promise对象,并确保在await后面进行赋值操作。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^