当前位置: 首页 > 知识库问答 >
问题:

JavaScript回调和promise混淆

淳于慎之
2023-03-14

我试图理解一个API参考描述,但我很难理解它的含义:

http://mongodb.github.io/node-mongodb-native/2.2/api/Cursor.html#toArray

上面写着

'toArray(回调)-

我知道回调相当于一个“块”,但有一个指向“promise”的箭头符号意味着什么?

共有1个答案

薛华奥
2023-03-14

这意味着函数可以接受回调,也可以返回promise。如文件中所述。

返回:
如果未传递回调,则promise

因此,您可以通过回调调用该函数:

acursor.toArray(anarray => {
  // …
});

或者使用返回的Promise获取结果:

acursor
  .toArray()
  .then(anarray => {
    // …
  });

 类似资料:
  • 我在玩弄promise和回调,想知道如果没有回调被传递,写一个返回promise的函数的正确方法是什么。 我的结果看起来是这样的,但我不确定这是否正确(反模式的意思) 它很简单:创建一个函数,并将“工作”代码包装在一个promise中。如果没有回调传递给我的函数,我返回包装的promise。如果一个回调被传递,我从和 这样可以吗,还是我错过了一些不起作用的特殊情况?

  • 我给出了一个模型以供确认: 下面是显示上述模式的代码。 下面是我如何使用它...(例如在任何视图中) 现在,问题是:如果我调用confirm,它显示模态。但是如果我单击Cancel,然后再次调用confirm(确认),这一次,我点击OK:函数(上面代码段中的第二个参数)被调用两次。如果我点击取消10次,上面的函数调用10次。 知道为什么会这样吗? 谢谢.

  • cb是回调函数,我想要先执行cb,再执行后面test中一些逻辑 这个如何改为Promise写法,不使用setTimeout、requestAnimationFrame 能得到下面的使用效果

  • 问题内容: 如果从调用, 则会 收到消息 “套接字已连接” ,但未调用。我在这里想念什么? 问题答案: 在AngularJS中,承诺结果在$ digest周期内异步传播。因此,仅在进入$ digest循环时才调用在then()中注册的回调函数。 因此,当您的套接字连接时,我们处于摘要周期。 创建一个新的Promise,但是直到下一个摘要周期(永远不会到来的摘要周期)之前,它的结果才会传播(因为没有

  • 本文向大家介绍JavaScript异步回调的Promise模式封装实例,包括了JavaScript异步回调的Promise模式封装实例的使用技巧和注意事项,需要的朋友参考一下 网页的交互越来越复杂,JavaScript 的异步操作也随之越来越多。如常见的 ajax 请求,需要在请求完成时响应操作,请求通常是异步的,请求的过程中用户还能进行其他的操作,不会对页面进行阻塞,这种异步的交互效果对用户来说

  • 问题内容: 我想使用Promise,但是我有一个类似以下格式的回调API: 1. DOM加载或其他一次事件: 2.普通回调: 3.节点样式回调(“ nodeback”): 4.带有节点样式回调的整个库: 如何在Promise中使用API​​,如何“承诺”呢? 问题答案: 承诺具有状态,它们从待定状态开始,可以解决: fulfilled成 意味着计算成功完成。 fulfilled 表示计算失败。 承