TypeError: Promise resolver undefined is not a function

在写微信小程序的时候遇到了一个很奇怪的问题,在原来的项目能使用的代码,新建一个项目,然后复制进去就报错了,报错部分的代码如下:

var res_tempfile=await that.TpreZip(res.tempFiles[0].tempFilePath,200,200,40)

其中Tprezip的定义如下:

TpreZip:async function(tmp_src,tmp_imgprowidth,tmp_imgproheight,tmp_imgprosize){//依次为原图地址,期待宽度,期待高度,期待大小
      return new Promise<String>((resolve, reject) => {
        console.log('***********图像预压缩开始*****************')
        resolve(tmp_src)
        reject('SomthingWrong.jpg')
      })

错误提示如下:

TypeError: Promise resolver undefined is not a function
    at new Promise (<anonymous>)
    at _callee5$ (index.js? [sm]:108)
    at s (<anonymous>:1:1588)
    at Generator.<anonymous> (<anonymous>:1:2925)
    at Generator.next (<anonymous>:1:1951)
    at asyncGeneratorStep (<anonymous>:1:906)
    at c (<anonymous>:1:1125)
    at <anonymous>:1:1218
    at new Promise (<anonymous>)
    at hi.<anonymous> (<anonymous>:1:1065)(env: Windows,mp,1.06.2407110; lib: 3.1.5)

基础库使用的3.1.5
跪求大佬解答!

答案

终于搞定了,根据提示:

类型参数只能在 TypeScript 文件中使用

才发现,我这次创建的小程序是js的,js里写Promise构造器是不需要带返回值的类型,因此修改代码

TpreZip:async function(tmp_src,tmp_imgprowidth,tmp_imgproheight,tmp_imgprosize){//依次为原图地址,期待宽度,期待高度,期待大小
      return new Promise((resolve, reject) => {
        console.log('***********图像预压缩开始*****************')
        resolve(tmp_src)
        reject('SomthingWrong.jpg')
      })

搞定!

你可能感兴趣的:(微信小程序)