如何把res.data赋值到外界,已经用一个promise包裹,不过vue3好像不知道要怎么做

如何把res.data赋值到外界,已经用一个promise包裹,不过vue3好像不知道要怎么做

img

1、定义方法传入回调函数


const fun = (callback: (v: any) => void) => {
      new Promise(function(resolve, reject){
        // 请求接口,通过resolve返回数据
        resolve('随便什么数据!')
      }).then(res => {
        // res是resolve返回的数据
        callback(res)
      })
    };
    fun((v) => {
      console.log(v)
    })

2、方法返回promise

const fun = () => {
      return new Promise(function(resolve, reject){
        // 请求接口,通过resolve返回数据
        request('url', params)
          .then((res) => resolve(res))
          .catch((e) => reject(e));
      })
    };
    在需要调用的地方使用
    fun().then(res => {
      //resolve中的数据
      console.log(res)
    })

定义个响应式 变量 在promise得then里赋值呗 。

不知道你这个问题是否已经解决, 如果还没有解决的话:

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

v3的话再setup里面用ref或者reactive这样定义,比如:const aa = ref(''),像你这个的话用const data = reactive([]),这样定义,data = res.data,用ref定义的话是data.value = res.data,有的时候得是data.values才可以,不清楚为什么