各位好
小弟js写没多久,目前碰到一个难题,希望大家不吝指教
是这样的,目前我们的js有个常用的function原本是 同步的
现在因为某些原因变成异步的
举例如下
假设这个常用的function是这样
function getService(){
// 同步叙述 跟底层的c api 取得一些资源,并回传回来
result = c_api();
return result ;
}
而现在底层的c api 做了一些大改版,导致变成异步的模式
类似变成
function getService( callback ){
// 异步 要把callback带给底层的c api ,底层c api 取得资源后,会把资料
用
格式带给callback
c_api( callback );
}
我们原本流程的code可能长这样
xxxx
var service = getService()
//对service的接续流程
现在却要改写成
function get_json( json ){
var service = parse_json_value( json );
//对service的接续流程
}
xxxx
getService( get_json ) ;
由于我们很多地方都用到getService这个function
如果全都改写成callback的方式会花大量的时间
所以主管就说找找看有没有什么可以在js这边把异步模拟成同步的方法 (底层 c 貌似
已经无法弄成同步的了)
这样转一层之后,原本的流程架构就可以不用改
我google找到 promise 这个语法,不过初步看起来,他是用来处理许多异步和异步
流程 的方法 (避免异步的callback地狱)
好像不是像我需要的 在同步和异步之间,直接把异步模拟成同步的
请问像我需要的这种功能,应该从什么方向着手呢?
我好像叙述的有点乱,如果看不懂的话我可以再补充,先谢谢各位大大了