【问题标题】:JS: What to a resolve a promise to when you don't care about the return value?JS:当你不关心返回值时,如何解决一个承诺?
【发布时间】:2021-03-17 14:48:25
【问题描述】:

如果我想使用 Promise 来确保函数首先运行但不关心返回值是什么,我该如何解决它? resolve(true) 是最佳实践吗?

let getShoes = return new Promise((resolve, reject) => {
    // do something 
    //resolve(true);  resolve using true?
});

getShoes.then(() => {
    // do something else but don't need the return from getShoes...only need to ensure it is run first
})

【问题讨论】:

  • 不需要return new Promise...只需return fetch。 fetch 是基于 promise 的。
  • 真 @David784 。如果它不使用 fetch 而只是先进行计算而我不关心返回但只是想确保它首先运行呢?
  • 我编辑了这个问题,使其无需 API 调用
  • 我觉得undefined比较好,在异步函数中undefined是默认返回值,和普通函数一样
  • 已经有一段时间了,(也许是节点 8?)但是我曾经有一个 node.js 项目,我尝试只调用 resolve() 没有值(未定义),奇怪的事情发生了。当我添加一个返回值时,奇怪的事情就停止了。可能只是一个错误,也许它不再是一个问题。但从那时起,我总是确保在解决和拒绝中具有一定的价值,即使它只是一个布尔值或整数或其他什么。只是我的 0.02 美元

标签: javascript


【解决方案1】:

解析为true 对我来说听起来很合理,因为您会明确声明您不关心承诺的返回值。

您也可以像在Promise.resolve with no argument passed in 中那样不带参数调用resolve(),这将解析为undefined。通过这样做,您将再次声明您不关心价值。

【讨论】:

  • 我没有明确提到不带参数调用resolve()会返回undefined,但在我链接的线程中提到了。我编辑了答案以包含该部分
【解决方案2】:

我会选择返回 undefined。

没有 return 语句或有空 return 语句的函数总是返回 undefined

异步函数也是如此。

如果你用空的 resolve() 解析,你会得到未定义的履行值。

【讨论】:

    猜你喜欢
    • 2017-05-09
    • 2013-12-31
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多