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
)
},
})
iOS JavaScriptCore 的 async 函数存在 bug https://bugs.webkit.org/show_bug.cgi?id=161942。
使用 async 函数时请打开开发者工具的【将 JS 编译为 ES6】选项或者自行转换。
2024年了 这个bug依旧没修复
async function ff(resolve2) { await new Promise(function(resolve1) { resolve1(); // setTimeout(resolve1, 1000); }); resolve2(); console.log('aresolve resolve resolve resolve resolve resolve'); } new Promise(function(resolve2) { return ff(resolve2); }).then(function() { console.log("done done done done"); }); // 只要用了定时器就有问题,看注释 // 到底是ios自身问题,还是框架问题,到现在还没有解决
今天刚遇到;各位怎样解决?
你return一个true,true身上有.then方法吗?
我真服了,昨天因为找这个bug 我10点才下班