【发布时间】:2021-06-11 23:07:36
【问题描述】:
我创建了一个简单的 Promise,当我调用它时,Promise 运行了两次。
import React from 'react'
function App() {
let promise = new Promise(function (resolve, reject) {
resolve("hello")
})
promise.then(function (res) {
console.log(res)
})
return (
<>
Hello
</>
)
}
export default App
当我访问 localhost:3000 并打开调试器时,它显示“hello”打印了两次。我无法理解发生了什么。请帮忙
【问题讨论】:
-
因为一次你
console.log(res)记录你好,一次你明确地console.log('hello')记录第二次。 -
??您发布的代码中有两个单独的对
console.log("hello")的调用。 -
@Pointy 我在问题中错误地放置了第二个 console.log。即使没有它,它也会打印两次“你好”。现在我已经编辑了这个问题,你现在能帮我吗?这将非常有帮助。
-
React.StrictMode 使您的代码在开发模式下执行两次,以确保您没有状态问题。一般来说,你不应该在没有使用 setState 保护它的情况下在功能组件中调用 Promise,因为它会在每次渲染时被调用/评估
标签: javascript reactjs