我好像搞不明白这件事。我使用创建-反应-应用程序,它是内置于测试运行Jest。对于所有同步代码来说,它似乎运行得很好,但是当嘲笑承诺时,我似乎无法让它工作起来。
react组件有一个表单,我可以模拟提交。
响应组件代码段。
//Top of the page
import {auth} from '../../lib/API_V2'
// ... //
// Handle submit runs when the form is submitted
handleSubmit = (event) => {
console.log('submit')
告诉我,解决一个新的承诺,这是计划在下一个循环,即使它是立即解决。然而,评论部分似乎是反例。
var p1 = Promise.resolve("p1")
/* console order will be "p2" "p1" */
// pattern1
// var p2 = Promise.resolve(Promise.resolve("p2"));
// pattern2
// var p2 = Promise.resolve(new Promise(function(resolve, reject){
// r
我读了很多关于承诺的文章。我知道承诺执行是任务队列的微任务,异步代码执行是任务队列的任务。在保证异步代码工作后同步代码(即在一些获取之后,我们可以在.then块中编写同步代码),这种情况是如何发生的?我猜想承诺中的所有代码都使用调用堆栈(如果在允诺体内同步代码)或任务队列(如果承诺体内有异步代码)。我看到了许多使用setTimeout代码的调用堆栈、Web和任务队列的示例,但是它如何与我只能承担的承诺一起工作。请在我的示例中显示调用堆栈、Web和任务队列发生了什么吗?
第一个示例:
const promiseWithAsyncBody = new Promise(resolve=>
s