前言:
今天在群里, 有个小伙伴问了一个问题, 他们和js交互的时候, 需要等待js的一个回调.
主线程调用一个网络请求, 然后要等网络请求的结果回来之后, 然后在return.
他说, 他们之前是根据runloop去回调添加监听解决的.说又引发了一些其他的问题, 问有没有人知道怎么做.
解决
我一直以为这应该是大部分都知道的, 直到他用runloop解决, 很多人都在群里讨论说没法实现, 我才意识到或许并不是那么简单.
方法一
如果你实在是不知道怎么解决, 那么就把return去掉换成block回调, 然后进行调用. 当然这可能会让你去重写一部分逻辑代码, 但是解决起来算是好用的.
方法二
就是在主线程做堵塞.那么问题来了
- 主线程可不可以做阻塞?
- 主线程调用async会不会开辟新线程?
主线程调用async会不会开辟新线程?
先说一个基础的async不管是同步队列, 还是异步队列, 调用async都会开辟线程, 但是区别是什么呢? 主线程async会吗?
建议先把图片放大, 自己思考一下会输出什么.
**1--