代码之家  ›  专栏  ›  技术社区  ›  Matt Pengelly

在*上调用promise.resolve()潜在*非promise值[重复]

  •  -2
  • Matt Pengelly  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我有一种情况需要检查一个函数是否返回了一个承诺,问题是,它是一个浏览器实现的函数,有些浏览器确实返回了一个承诺,而有些则没有。我正在检查: How do I tell if an object is a Promise? ,查看如何检查函数是否返回Promise,并建议使用Promise.Resolve()。但是当您在一个非promissified函数上调用promise.resolve()时,会发生什么呢?

    我试着读这个,但我找不到问题的确切答案: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve

    2 回复  |  直到 6 年前
        1
  •  3
  •   J. Pichardo    6 年前

    所以是的,用 Promise.resolve

        2
  •  1
  •   Simon Chawla    6 年前

    var obj = whateverFunction();
    
    if(typeof obj.then === "function"){
       // This is a promise because it has a then function
    }