【发布时间】:2019-08-17 23:00:19
【问题描述】:
我有两个函数,之前被设计为同步运行。
function addOne(recievedInt) {
...some network requests happend...
return recievedInt = receivedInt++;
}
和
function sum(arg1, arg2) {
... do some manipulations...
return arg1 + arg2;
}
后两者都使用回调更改为异步,如下所示:function
addOne(recievedInt, callback), sum(arg1, arg2, callback)
现在我需要将以前使用这两个函数的第三个函数从同步更改为异步,将回调传递给每个函数。
function compute(value) {
var c = addOne(value);
var a = sum(value, c) + c;
return a;
}
我最好的解决方案是:
function compute(value) {
return addOne(value, function(n1) {
return sum(value, n1, function(n2) {
return n2 + n1;
});
});
}
这是基于回调的异步版本的正确实现吗?以及如何使用 async/await、generators、Promises 进行转换
【问题讨论】:
-
我认为真正的问题是为什么这些需要变成异步的?这些是否执行 async 操作?还是只是处理回调?
-
不确定这是否完全是一个骗局,但this question 可能有一些对您有帮助的想法
-
briosheje,是的,他们执行同步操作,我只是没有粘贴那个位。
-
他们执行 SYNC 还是 ASYNC 操作?如果他们执行 sync 操作,请问你为什么需要让他们 async?当然,您可以通过简单地将它们包装在 promise 块中来做到这一点,但对我来说,问题是 为什么您应该这样做,因为它们 不是异步的。跨度>
标签: javascript asynchronous callback synchronization