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

小程序 文章 2022-01-06 12:00 437 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群

相关文章
wx.saveFile保存不了,已清理临时文件缓存,但还是不行?
小程序分享到朋友圈onShareTimeline如何指定转发路径?
微信小程序怎样开发悬浮框?
关于getUserProfile,我在手机上测试时报了这个错,请问怎么解决?
小程序是找别人做的,最近发现各方面数据都不对,有没有可能被人动了手脚?
随便看看
教育科技公司申请微信支付被拒绝? 3744
微信公众号免300认证教程 4942
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 4059
小程序广告组件通过审核,但是小程序内没有显示广告? 4140
企业微信通讯录账号被管理员误/恶意删除,怎么办? 8001
问题? 7233
如何快速搭建抽奖助手小程序(无需代码知识) 5023
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 5975
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 5500
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5196