gpt4 book ai didi

javascript - q- 何时返回,如 promise 链中的 "defer.resolve(myData); return defer.promise;"VS 只是 "return myData"

转载 作者:行者123 更新时间:2023-12-03 06:45:11 35 4
gpt4 key购买 nike

我一直在尝试在我的 Node.js 服务器上编写更好的代码,并在阅读了如下一些博客文章后:

我仍然不确定我是否以“正确的方式”沿着 promise 链返回数据。

我无法判断何时适合返回或传递数据,这样的 promise

案例1

var promise = function () {
var defer = q.defer();
var myData = "hi"
defer.resolve(myData);
return d.promise;
};

或者像这样。

案例2

   var promise = function () {
var myData = "hi"
return myData;
};

我假设,如果我知道在 promise 链不可能中断的情况下会返回某些内容,则使用情况2,但如果它们是一个更改它可能会失败(即它从网络调用返回数据但用户处于离线状态),然后使用情况 1,以便它可以处理这两种情况。这是正确的还是我对这个流程/流程的工作原理有误解。

最佳答案

在这两种情况下,您都会返回立即已知或计算出的结果,而在第一种情况下您将其包装在 promise 中。您是否想要这样做取决于如果结果是异步计算的,它对于函数的调用者是否应该是透明的。如果您返回一个 promise ,您可以稍后更改函数的实现以异步计算或检索结果。

两个提示:

  1. 在情况 2 中您没有使用 Promise,因此不要调用您的函数 promise
  2. 在第一种情况下,您只需 return q("hi"); 将文字包装在 Promise 中。

关于javascript - q- 何时返回,如 promise 链中的 "defer.resolve(myData); return defer.promise;"VS 只是 "return myData",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771100/

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