首页 > web前端 > js教程 > 正文

JavaScript .then / .when 方法。

DDD
发布: 2024-10-17 06:27:29
原创
717 人浏览过

JavaScript the .then / .when method.

今天,我正在学习 WordPress 教程,讲师正在演示如何使用 jQuery 和 JavaScript 搜索网站,特别是使用 .then() 和 .when() 方法。随着我的跟进,我发现我对这些方法并没有我想象的那么熟悉。

所以,我做了一些研究,做了一些笔记,并将它们添加到我的黑曜石笔记本中。说实话,这些笔记有点粗糙——它们看起来就像是五年级学生用松鼠的注意力拼凑出来的东西(让我们面对现实吧,有时感觉就像我一样!)。

但我想,为什么不分享它们呢?如果他们帮助了一个人,那就值得发帖。


想象一下:

你在学校,你和你的朋友互相做出承诺。这些承诺就像是在说:“我会完成作业,然后我们就可以玩游戏了。”

但事情是这样的:有时需要一点时间才能完成作业。你可能会很快吃完,或者你的狗可能会吃掉它,而你永远不会吃完(哎呀!)。 JavaScript Promise 的工作方式相同。它等待事情发生,然后说:“好吧,接下来做什么?”

现在,我们来谈谈.then():

.then() 方法就像你在 承诺完成后要做的事情。想象一下你对你的朋友说:

  • “如果我完成了作业,那么我们就可以玩电子游戏了!”

但是如果你没有完成怎么办?呃哦,您可以添加备份计划

  • “如果我没有完成作业,那么我们就不玩电子游戏了。”

以下是在 JavaScript 中的表达方式:

promiseToFinishHomework
  .then(() => {
    console.log("Yay! We can play games!"); // If you finished
  })
  .catch(() => {
    console.log("Oh no! No games today!"); // If you didn’t finish
  });
登录后复制

现在对于 .when():

这就像你在等待一群朋友完成他们的作业,这样你们就可以一起玩。你就像:

  • “当我们都完成之后,我们就可以一起玩了!”

在现实生活中,这就是一起工作。在 JavaScript 中,您使用名为 Promise.all() 的东西(这就像说“让我们等待每个人都准备好!”):

Promise.all([friend1, friend2]).then(() => {
  console.log("We’re all done! Time to play!");
});
登录后复制

总结(超级简单):

  • .then() 就像在说“当这一件事完成后,我们就做一些有趣的事情。”
  • .when()(或 Promise.all())就像是在说“当每个人完成他们的工作后,我们就一起玩。”

所以,JavaScript 只是确保它知道 接下来会发生什么 当承诺得到遵守或违背时! ?


那么它是怎么知道的呢?

Promise 本身不会检查作业。 你说吧!当您创建承诺时,您可以根据任务(例如完成作业)是否完成来决定是已解决还是拒绝。 .then() 在 Promise 得到解决时运行,.catch() 在 Promise 被拒绝时运行。

现实生活中的行动示例:

这是一个完整的示例来查看它的实际效果:

let promiseToFinishHomework = new Promise((resolve, reject) => {
  let finishedHomework = true; // Change this to false to see the rejection

  if (finishedHomework) {
    resolve(); // Homework is done!
  } else {
    reject(); // Homework is not done!
  }
});

promiseToFinishHomework
  .then(() => {
    console.log("Yay! We can play games!"); // If the promise resolves (homework done)
  })
  .catch(() => {
    console.log("Oh no! No games today!"); // If the promise rejects (homework not done)
  });

登录后复制

以上是JavaScript .then / .when 方法。的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板