当前位置: 首页 > 面试题库 >

javascript中的链许诺

管杜吟
2023-03-14
问题内容

为了在数据库中创建对象,我已经创建了许多许诺。

var createUserPromise = new Promise(
  function(resolve, reject) {
    User.create({
      email: 'toto@toto.com'
    }, function() {
      console.log("User populated"); // callback called when user is created
      resolve();
    });
  }
);

最后,我要按我想要的顺序履行所有诺言。(因为somes对象依赖于其他对象,所以我需要保持该顺序)

createUserPromise
  .then(createCommentPromise
    .then(createGamePromise
      .then(createRoomPromise)));

所以我希望看到:

User populated
Comment populated
Game populated
Room populated

不幸的是,这些消息被打乱了,我不明白。

谢谢


问题答案:

看起来您理解了Promise错误,请重新阅读有关Promise和本文的一些教程。

使用创建承诺后new Promise(executor),它会立即被调用,因此所有函数实际上都是在创建它们时执行的,而不是在链接它们时执行的。

createUser实际上应该是一个返回承诺而不是承诺本身的函数。createCommentcreateGamecreateRoom太。

然后,您将能够像这样将它们链接起来:

createUser()
.then(createComment)
.then(createGame)
.then(createRoom)

如果您不传递回调,则最新版本的猫鼬会返回promise,因此您无需将其包装到一个返回promise的函数中。



 类似资料:
  • 我在JavaScript中构建链表。我有一个部分不明白。 问题是插入函数! 假设我已经有了一个B C节点。 我想在B后面插入K。 当前,B的下一个和上一个分别是C和A。 C的前一个元素是B。 一旦我把K放在B后面, a B K C (1)K的下一个元素将是C (2)K的前一个元素将是B (3)B的下一个元素是K (4)C的前一个元素是K。 在我在Insert函数中编写的代码中,下面的每一行代码都应

  • 问题内容: 我需要使用HtmlUnit从网站保存文件。我目前正在导航至具有使用javascript的多个锚点的页面: 到目前为止,尽管我一直无法找到资源或示例来说明如何使用HtmlUnit保存文件。我一直在主要尝试让AttachmentHandler为此工作,因为它似乎最有可能工作,但未成功。 如果单击链接,如何使用AttachmentHandler获得浏览器将看到的数据流? 问题答案: 比这更简

  • 问题内容: 我需要使用HtmlUnit从网站保存文件。我目前正在导航至具有使用javascript的多个锚点的页面: 到目前为止,尽管我一直无法找到资源或示例来说明如何使用HtmlUnit保存文件。我一直在主要尝试让AttachmentHandler为此工作,因为它似乎最有可能工作,但未成功。 如果单击链接,如何使用AttachmentHandler获得浏览器将看到的数据流? 问题答案: 比这更简

  • 问题内容: 我最近在Swift中进行了大量编程。今天,当出现问题时,我在JavaScipt中做了一些工作: 是否有类似于JavaScript中的可选链接的内容?一种防止没有任何变量的方法? 例: 将失败一半的时间,因为有时返回未定义。 我能想到的唯一解决方案是一个函数: 我希望能够执行以下操作: 仅在返回对象后才执行问号后的部分。 但这不是很精巧。有更好的东西吗?运营商的神奇组合? 编辑 我知道我

  • 问题内容: 我正在使用python的机械化模块导航网站,并且无法单击下一页的javascript链接。我做了一些阅读,有人建议我需要python- spidermonkey和DOMforms。我设法通过不知道实际单击链接的语法来安装它们。 我可以将页面上的代码标识为: 有人知道如何单击吗?或者也许还有另一种工具。 谢谢 问题答案: 对于这些用例,我主要在jython下使用HtmlUnit。我还发表

  • 问题内容: 我有一个标签,在某些情况下,我希望此标签被完全禁用。 注释中的代码(这是链接的生成方式) 问题答案: 当您不希望用户点击时重定向时,请尝试此操作