首页 > 代码库 > 疑问,这一系列的异步操作如何做同步化改造?有这个必要吗?
疑问,这一系列的异步操作如何做同步化改造?有这个必要吗?
在p204有下面这个例子,当然,书中并没有给出step1...step4的实现,这个实现是我加的。
function step1(func){
process.nextTick(function(){
console.log(‘step1‘);
func(1);
});
}
function step2(val, func){
process.nextTick(function(){
console.log(‘step2,‘ + val);
func(val+1);
});
}
function step3(val, func){
process.nextTick(function(){
console.log(‘step3,‘ + val);
func(val+1);
});
}
function step4(val, func){
process.nextTick(function(){
console.log(‘step4,‘ + val);
func(val+1);
});
}
step1(function(val1){
step2(val1, function(val2){
step3(val2, function(val3){
step4(val3, function(val4){
console.log(‘val4, ‘, val4);
})
})
})
})
我想既然这些函数要接受一个回到函数,肯定是因为内部有一些操作是异步的,比如这个nextTick,或者是ajax调用,等等。
我现在不明白的是,作者在205中假定了step1...step4已经进行了同步化改造。然后再用generator函数来调用这些函数,那么究竟改造之后的step1...step4函数是什么样的呢?他如何把其中的异步操作变成同步的呢?
而且有必要变成同步的吗?JavaScript的美妙不就是因为他可以大量的使用异步吗?我觉得promise的语法挺优美的啊,为啥要进行generator的同步化改造呢?
疑问,这一系列的异步操作如何做同步化改造?有这个必要吗?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。