/**
 * 异步Computed
 * @param compute 异步计算函数
 * @param initValue 初始值
 * @returns Ref 一个只读的异步计算Ref
 */
export function asyncComputed(compute,initValue){
    const value = shallowRef(initValue);
    watchEffect(async ()=>{
        console.log('trigger update')
        value.value = await compute();
    })
    return readonly(value);
}
const asyncValue = asyncComputed(()=>{
    return new Promise((resolve)=>{
        setTimeout(()=>{
            resolve(1)
        },2000})
})

//输出undefined
console.log(asyncValue.value);
//2秒后变成1

 

标签: none