javascript 回调同步问题

Oli7 2015-07-15 01:43:43
是这样的,需要在js里实现阻塞式同步效果,不知道是否有方法可以实现,请大神赐教。
附上类似的源码示例:

var val; //val会在特定时候被赋值,时间不可知

//需要实现同步效果的函数,setTimeOut不能达到效果,此函数内的代码流程不可被拆分到不同函数
chrome.runtime.onMessage.addListener(function(request,sender,sendResponse){
{
//此处阻塞式等待全局变量val被赋值

sendResponse(val);//val被赋值后,此处将val值传回
}
...全文
161 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Oli7 2015-07-16
  • 打赏
  • 举报
回复
引用 楼主 HeathLedger1990 的回复:
是这样的,需要在js里实现阻塞式同步效果,不知道是否有方法可以实现,请大神赐教。 附上类似的源码示例: var val; //val会在特定时候被赋值,时间不可知 //需要实现同步效果的函数,setTimeOut不能达到效果,此函数内的代码流程不可被拆分到不同函数 chrome.runtime.onMessage.addListener(function(request,sender,sendResponse){ { //此处阻塞式等待全局变量val被赋值 sendResponse(val);//val被赋值后,此处将val值传回 }
谢谢回复,对js不太熟,闭包不太理解,我会去查查相关知识的
天际的海浪 2015-07-15
  • 打赏
  • 举报
回复
你这要求只在理论上可行,但js是单线程的,你这边一阻塞式等待,浏览器就会出现假死状态,这时你的全局变量val就根本没办法被赋值 还是用异步回调吧,至于你的函数内的代码流程不可被拆分,没有什么不可被拆分的,这是你函数设计的问题,可以用闭包、递归循环来改进你的函数

87,941

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧