【问题标题】:Promise.resolve with no argumentsPromise.resolve 不带参数
【发布时间】:2018-12-02 15:43:58
【问题描述】:

我知道similar question was asked before,但它并不能完全回答我想要理解的内容。

我正在阅读mobx-state-router tutorial,它有这段代码:

{
    name: 'department',
    pattern: '/departments/:id',
    onEnter: (fromState, toState, routerStore) => {
        const { rootStore: { itemStore } } = routerStore;
        itemStore.loadDepartmentItems(toState.params.id);
        return Promise.resolve();
    }
},

我不明白这个Promise.resolve() 与什么有关?是哪个承诺?如何/何时解决?

【问题讨论】:

  • 这只是一个虚拟的Promise,可以立即解决。似乎onEnter 的调用者期望返回一个 Promise。
  • @CertainPerformance - 哦,现在我明白了。谢谢!
  • Promise.resolve()Promise.resolve(undefined) 相同

标签: javascript promise


【解决方案1】:

这是什么承诺?

Promise.resolve 创建一个新的承诺。

如何/何时解决?

马上,这就是Promise.resolve 的用途。

onEnter 显然应该返回一个承诺。在这个特定的onEnter 中,它没有任何异步工作要做,所以它返回一个预先解决的承诺。通常,您指定应使用 (Promise.resolve(42)) 解决承诺的值,但如果您不指定,则应用通常的 JavaScript 语义,用于解决承诺的值是值 undefined

Promise.resolvein the specon MDN

【讨论】:

  • 谢谢!现在我明白了。这与调用者的期望有关。
  • @Avi 出于同样的原因有Promise.reject(...)
猜你喜欢
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
相关资源
最近更新 更多