收藏
回答

开发小程序,在电脑端支持await\async,真机测试await\async不支持,怎么解决?

小程序开发,在电脑端使用async\await有效,真机测试无效

回答关注问题邀请回答
收藏

2 个回答

  •  
     
    2020-05-15

    我在开发过程中暂时没遇到这个问题,建议上传个代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    对于你说的使用 regenerator-runtime ,更建议开启 工具里的 ES6 转 ES5 和 增强编译,就可以支持 async\await 了

    2020-05-15
    有用 1
    回复 11
    • 雾
      2020-05-15
      private async queryPersons(index: number, name: string): Promise<AnyObject> {
          return new Promise((resolve: any) => {
            let queryInfo = {
              index: index,
              count: 100,
              name: name
            }
            this.queryPersonWithPart({
              data: queryInfo,
              success: (res: HttpResponseSuccess) => {
                resolve(res)
              },
              fail: (res: HttpResponseFail) => {
                resolve(res)
              }
            })
          })
        }
        private async queryPersonsByNameAsync(request: HttpRequestOption) {
          if (request.data === undefined || request.data.name.length === 0) {
            this.failResponse(request.fail, -1, "参数不正确")
            return
          }
          let index: number = 0
          let resultCount: number = 0
          let queryName = request.data.name
          let resultArray: Array<PersonInfo> = new Array()
          do {
            let res = await this.queryPersons(index, queryName)
            console.log("queryPersonsByNameAsync-> statusCode: " + res.statusCode)
            if (res.statusCode != 0) {
              this.failResponse(request.fail, res.statusCode, "查询异常")
              return
            }
            let personsArray = res.data.array
            resultCount = personsArray.length
            console.log("queryPersonsByNameAsync-> resultCount: " + resultCount)
            if (resultCount > 0) {
              resultArray = resultArray.concat(personsArray)
            }
            index += 100
          } while (resultCount > 0)
          console.log("queryPersonsByNameAsync->resultArray.length: " + resultArray.length)
          this.successResponse(resultArray, request.success)
        }
        queryPersonByName(request: HttpRequestOption) : boolean {
          this.queryPersonsByNameAsync(request)
          return true
        }
      }
      调用queryPersonByName会卡死,和最初不支持await的现象一样,电脑端调试是ok的,在真机上调试就有问题(Andriod和苹果都一样),编译配置如下:
      2020-05-15
      回复
    •  
       
      2020-05-15回复
      你直接这样发给我,我没办法调试,建议了解下代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
      2020-05-15
      1
      回复
    • 雾
      2020-05-15回复 
      代码片段不支持typescript?可以配置吗
      2020-05-15
      回复
    • 雾
      2020-05-15
      js应该可以复现,我写一个看看
      2020-05-15
      回复
    •  
       
      2020-05-15回复
      这。。。就有点难搞了
      2020-05-15
      回复
    查看更多(6)
  • 雾
    2020-05-15

    typescript语言开发,使用2.11.0调试库。如果使用regenerator-runtime,怎么在typescript中调用封装的js文件。

    在网上看,调用js文件,需要生成.d.ts文件,但是js库是通过npm导入的,如果自己封装的js,要怎么调用?

    2020-05-15
    有用
    回复
登录 后发表内容
问题标签