虽然异步功能还在开发中,但在文档中看到一句话:Async functions can only be called inside async functions.如果是这样的话,如何避免染色问题?之前在python中遇到过这种问题,改起来简直不要太酸爽。。
借用仓颉白皮书中的一段内容,是否可以有所借鉴:
仓颉语言的线程模型使开发者能够像编写普通代码一样轻松地实现并发编程。通常,用户态线程模型可分为“无栈”和“有栈”两种实现方案。尽管“无栈”模型可以将内存占用降到极低,但其实现通常需要在语言中引入新语法,最常见的就是 async/await 关键字。然而,这种新语法会显著增加开发者编写并发代码的复杂度。开发者不仅需要在编程过程中手动标记(如用 async 标记异步函数并用 await 标记其调用点),而且这种标记具有“传染性”(包含 await 的函数必须标记为 async),导致经典的“函数染色”问题。仓颉线程拥有独立的执行上下文,因此能够自由切换,开发者无需为标记操心,从而彻底消除这一复杂性。