什么基于承诺的异步代码提供基于回调的异步代码不是什么?

时间:2018-03-05 11:05:01

标签: javascript asynchronous callback promise

我非常熟悉在JavaScript中使用回调来在异步环境中序列化逻辑。与在C#中使用async/await相比(我相信这是来自JavaScript),您可以在其中执行以下操作:

var y = await doAsynchronousNetWorkRequest();
return y;

我发现promises在处理异步代码和回调时几乎没有什么改进。

使用基于回调的代码,异步事件发生在回调中后发生的任何逻辑:

(function() {
  var x = 5;
  makeAsyncRequest(function() {
    // then do something
  });
  return x;
})();
x组件执行之前将返回

then do something。同样承诺:

 (function() {
  var x = 5;
  makeAsyncRequest()
    .then(function() {
       // then do something
     })
  return x;
})();
x组件执行之前,

then do something仍将返回。关于创建自己的库,除了不必包含一个回调参数然后在某个时刻执行(即它......稍微......更清楚,只返回一个承诺),我可以看出,基于回调和基于承诺的异步代码之间没有功能差异,async/await实际上有所作为。 (并且'飞行v'并没有出现在代码库中,但这并不重要。)

使用promises和基于回调的异步代码是否有任何好处并不是很明显?

0 个答案:

没有答案