gpt4 book ai didi

javascript - 总是返回一个 promise 有用吗

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:09 25 4
gpt4 key购买 nike

我正在使用 bluebird 围绕 http 服务设计一些 nodejs api 包装器。这个包装器中的许多函数都是异步的,因此从这些实现中返回 promise 很有意义。

我的同事已经在这个项目上工作了几天,有趣的模式正在出现,他还从同步实现的功能中返回 promise 。

例子:

function parseArray(someArray){
var result;
// synchronous implementation
return Promise.resolve(result);
}

如果稍后需要将实现设为异步,我可以看出这会有多大用处,因为您不必重构调用站点。我想所有方法始终“异步”也很好,但我不确定这到底有多棒。

这是否被认为是一种不好的做法,我们有什么理由不应该这样做吗?

最佳答案

在同步方法中返回 promise 是没有意义的。

Promises 提供了对并发的抽象。当不涉及并发时,例如提供数组时。返回一个 promise 会导致更糟糕的流量控制,并且速度要慢得多。

这也传达了错误的信息。事实上,无缘无故地 promise 是一种很常见的反模式。

有用的一种情况是当一个方法可能是异步的时——例如:从缓存中获取某些东西或在它不存在时发出请求:

function getData(id){
if(cache.has(id) return Promise.cast(cache.get(id));
return AsyncService.fetch(id).tap(cache.put);
}

关于javascript - 总是返回一个 promise 有用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22473728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com