then の最初のパラメータのメソッドは、解決時に Promise が実行されるはずですが、実際には console.log(b) が実行されます。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
望まぬ返信です!
Promise では、.then( func ) 会返回一个新的 Promise 实例,这个实例的结果,是把函数体 func 的结果通过执行 Promise.resolve() 得到的。所以在你的问题里,console.log(a) 没有返回值,相当于 Promise.resolve(null) 得到一个状态为 resolved は Promise インスタンスなので、次のステップに進みます。
.then( func )
Promise.resolve()
console.log(a)
Promise.resolve(null)
resolved
Promise に関しては、私のチュートリアル「Promise の N の使用法」を読むことをお勧めします。これには非常に詳細な説明があり、基本的に Promise に関するすべての質問に答えることができます。
.then(パラメータ 1, パラメータ 2) パラメータ 1 は成功のコールバック関数 (resolve())、パラメータ 2 は失敗のコールバック関数 (reject()) です。これは、ここでの書き方のせいで、.then の後に2 番目の関数 (最初の関数) が実行され、b の値が未定義として出力されます。それだけです。 !
望まぬ返信です!
Promise では、
.then( func )
会返回一个新的 Promise 实例,这个实例的结果,是把函数体 func 的结果通过执行Promise.resolve()
得到的。所以在你的问题里,console.log(a)
没有返回值,相当于Promise.resolve(null)
得到一个状态为resolved
は Promise インスタンスなので、次のステップに進みます。Promise に関しては、私のチュートリアル「Promise の N の使用法」を読むことをお勧めします。これには非常に詳細な説明があり、基本的に Promise に関するすべての質問に答えることができます。
.then(パラメータ 1, パラメータ 2) パラメータ 1 は成功のコールバック関数 (resolve())、パラメータ 2 は失敗のコールバック関数 (reject()) です。これは、ここでの書き方のせいで、.then の後に2 番目の関数 (最初の関数) が実行され、b の値が未定義として出力されます。それだけです。 !