quickjs-android icon indicating copy to clipboard operation
quickjs-android copied to clipboard

await 语法支持有问题,会阻塞后续逻辑

Open 2houyu opened this issue 2 years ago • 4 comments

测试代码如下:

jsContext.executeVoidScript("console.log(\"Hello World\");\n" +
                                "function testAsync(params) {\n" +
                                "    console.log(\"test Async start\");\n" +
                                "    return new Promise(function (resolve, reject) {\n" +
                                "        resolve(\"done\");\n" +
                                "    });\n" +
                                "}\n" +
                                "\n" +
                                "async function main(){\n" +
                                "    var t = await testAsync(11);\n" +
                                "    console.log(\"test finish\"+t);\n" +
                                "}\n" +
                                "main();",null);

日志输出如下,test finish 没有输出 D/QuickJS: Hello World D/QuickJS: test Async start

2houyu avatar Sep 06 '21 03:09 2houyu

QuickJS对Promise的支持有问题,我这边研究一下,也欢迎你一起研究。

taoweiji avatar Sep 10 '21 05:09 taoweiji

被加到pendingjob里了,参考qjs.c源码,里面有个事件循环,js_std_loop来处理这些job

2houyu avatar Sep 10 '21 06:09 2houyu

我也遇到了这个问题,使用Promise不行,请问有什么解决办法吗?

peienliudao avatar Aug 16 '22 09:08 peienliudao