Property ‘on‘ does not exist on type ‘void & Promise<UploadTask>‘. <ArkTSCheck>

这个错误提示表明在类型为 void & Promise<UploadTask> 的对象上不存在 on 方法。

             const task = await request.uploadFile(context, {
              url: 'https://hmajax.itheima.net/api/uploadimg',
              header: {
                'content-type': 'multipart/form-data'
              },
              method: http.RequestMethod.POST,
              data: [],
              files: [{
                filename: imgName,
                name: 'img',
                uri: `internal://cache/${imgName}`,
                type: imgName?.split('.').pop()
              }]
            })
            task.on('headerReceive', (res: object) => {
              const IRes = res as IUploadRes
              const imgUrl = JSON.parse(IRes.body) as IBody
              //AlertDialog.show({ message: imgUrl.url })
              this.avatar = imgUrl.data.url
            })

task的类型 

const task: void & Promise<request.UploadTask>
uploadFile的方法

按照他的写法

export interface AsyncCallback<T, E = void> {

    (err: BusinessError<E>, data: T): void;
}
            request.uploadFile(context, {
              url: 'https://hmajax.itheima.net/api/uploadimg',
              header: {
                'content-type': 'multipart/form-data'
              },
              method: http.RequestMethod.POST,
              data: [],
              files: [{
                filename: imgName,
                name: 'img',
                uri: `internal://cache/${imgName}`,
                type: imgName?.split('.').pop()
              }]
            }, (err,task) => {
              task.on('headerReceive', (res: object) => {
                const IRes = res as IUploadRes
                const imgUrl = JSON.parse(IRes.body) as IBody
                //AlertDialog.show({ message: imgUrl.url })
                this.avatar = imgUrl.data.url
              })
            })

可以看到这样就解决问题了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值