开发者社区 > 云原生 > Serverless > 正文

callback了为什么还会往下执行?

callback了为什么还会往下执行?

提问39.png

提问38.png

提问40.png

展开
收起
大圣东游 2023-06-08 12:54:17 96 0
4 条回答
写回答
取消 提交回答
  • 要自己return 一下

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-08 18:01:53
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    根据您提供的信息,我猜测您遇到了一个回调函数的问题。在这里,allback 应该是一个函数,它在执行时被调用,但是您似乎没有在 allback 中定义回调函数。 当您使用 await 关键字时,您应该为查询函数 query 定义一个回调函数,以便在查询结果返回时执行回调函数。例如:

    const res = await query(sgl, (err, data) => {
    if (err) {
    console.error(err);
    return;
    }

    console.log("报警设置");
    if (data.length == 0) {
    console.log(data);
    return;
    }

    // 在这里定义回调函数
    callback(null, data);
    });

    console.log(111);

    CopyCopy 在上面的代码中,我们使用了一个回调函数,它在 query 函数返回时执行。我们使用了一个 (err, data) => { … } 的语法来定义回调函数,其中 err 是查询错误的对象,data 是查询结果的数据。

    请注意,如果您使用 allback 函数,则您应该为 allback 定义一个回调函数,以便在 allback 返回时执行回调函数。这是确保 allback 成功执行的关键。

    2023-06-08 17:22:08
    赞同 展开评论 打赏
  • 在阿里云函数计算中,当你的函数执行完毕并返回结果后,如果你还有未结束的异步操作(比如未完成的回调函数),函数计算平台会等待这些操作完成后再结束函数。

    但是,如果你的函数在执行完毕后没有返回结果,那么函数计算平台会认为你的函数还在继续执行,因此会继续往下执行代码。

    所以,如果你的函数有未结束的异步操作,一定要确保在返回结果之前,这些异步操作已经完成了。

    2023-06-08 14:42:30
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    如果回调函数在没有设置警报的情况下仍在继续执行,则可能是因为系统或应用程序具有定义的"退回"或"默认"行为,即在没有特定行动的情况下,回调函数可能会被调用作为默认行为。此外,系统或应用程序可能尚未完全实现,回调函数可能是一个占位符或为未来功能的暂时实现。无论如何,了解系统或应用程序的意图以正确解释回调函数的行为至关重要。

    2023-06-08 14:04:06
    赞同 展开评论 打赏
问答地址:

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载