IOS端 当Promise与异步函数一起使用时 特定情况下永远不会settled

小程序 文章 2022-01-06 12:00 452 0 全屏看文

AI助手支持GPT4.0

IOS端 当Promise与异步函数一起使用时 特定情况下永远不会settledIOS side When Promise is used with asynchronous function, it will never be settled under certain circumstances

IOS端 当Promise与异步函数一起使用时 特定情况下永远不会settled
框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.16 2.22.3
const app = getApp()function wait(delay{  return new Promise(resolve => setTimeout(resolve, delay))}const requestAuth = async() =>  {  return request(false)}async function request(auth = true{    await Promise.resolve()    await wait(300);    if (auth) {      await requestAuth()    }    return true}Page({  onLoad() {        request().then(          () => {            //在ios既不会执行到这里 也不会报错            wx.showModal({              title'在ios上始终无法出现的modal',            })          },          console.error        )  },})

Framework type problem type terminal type wechat version basic library version applet bug wechat IOS client 8.0.16 2.22.3 const app = getapp() function wait (delay) {return new promise (resolve = > setTimeout (resolve, delay))} const} requestauth = async() = > {return} async} function request (auth = true) {await {promise. Resolve() await} wait (300); if (auth) {await {requestauth()} return} true} page ({onload() {request(). Then (() = > {/ / this will not be executed here in IOS. No error will be reported. Wx.showmodal( {Title: 'module that cannot appear on IOS',})}, console Error)},}) code snippet https://developers.weixin.qq.com/s/L6obm6mt70w3

回答:

老张:

1、碰到过。一律放弃promise方式,改e5异步的写法。

Reynold陈靖:

你return一个true,true身上有.then方法吗?

Jesse:这跟我return什么没关系吧
Jesse:难道异步函数中不允许return true吗
Reynold陈靖:不是不允许return true。我认为链式调用,后面的.then()方法依赖的是上一个函数的返回值
Jesse:兄弟,你应该好好看看异步函数的用法,异步函数被调用后始终返回Promise
xplee:async/await 以及 Promise,回炉重炼一下吧
杨泉:true.then?
Jesse:兄弟,你是在说我嘛
Jesse:哪写错了,请指教
Reynold陈靖:你是对的,我写了个demo验证了。那会不会是小程序环境不同,不支持这种写法?
Jesse:大哥,注意我这是异步函数
Jesse:很有可能微信没有按照EcmaScript实现Promise
xplee:云函数才敢用async await,小程序端,我一般用直接返回Promise对象的方式,调用端采用链式调用。
Jesse:异步函数兼容性了解下 ios >= 10.3 & android >= 55
Jesse:

我真服了,昨天因为找这个bug 我10点才下班

-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
公众号首页底端的菜单栏能不能实现只允许部分人查看?
微信小程序开发?
公众号名称(商标)被占用,用30、35类商标投诉都没通过。请问到底要用哪类商标才能申诉成功?
我想问问大家微信开发者工具好用(纯属吐槽)吗?
服务号即将停止模板消息,基于服务号的工具产品开发者,有什么好思路?欢迎交流
随便看看
使用微信开放标签,电脑打开的网页不显示wx-open-launch-app这个标签的内容? 2350
服务商下的子商户是不是不能自己创建代金券? 680
微信支付商家结算问题 598
求助,救助啊。怎么开通小程序红包啊,根据文档,在服务商平台的产品里面没有这个产品 626
企业主体的小程序商城的钱可以提现到个人银行卡吗? 1102
微信商户提示涉嫌交易异常,申诉通过后,仍然不能支付,希望官方大佬给看一下。万分感谢。 3051
HUAWEI 华为p30 无法启动微信付费订阅 898
小程序支付回调一直报类型转换错误 635
关于支付问题? 618
app如何获取微信公众号授权(企业支付零钱)? 803