callback 相关问题

回调是一段代码(即函数或方法或lambda表达式的地址或引用),它作为参数传递给其他代码,期望在某个方便的时候回调(执行)参数。此标记应与关于API的问题一起使用,该API使用回调来在操作完成时通知调用者。使用事件处理标记来处理涉及订阅事件的问题,例如在GUI框架中。

从 C# 角度看 JavaScript 回调基础知识

请帮助我理解有关回调的两件事。它们是留给我的最后一个 JS 怪异,我无法掌握强大的 C# 背景。 首先 - 为什么我们应该发送函数作为参数。我...

回答 1 投票 0

使用js用正则表达式模式进行多次替换

我使用php,现在我需要用js做一些事情。(我用php做的) 我有字符串:const句子=“{{GALLERY_slider_8}} Lorem ipsum dolor sat amet。”; 我想替换{{

回答 1 投票 0

Lambda 无法传递给采用函数指针的模板化函数

我的设置 我已经设置了这些东西, 一个结构体 一个模板化函数指针,该指针将该结构体作为参数,并以 T 作为返回类型 接受函数回调的模板化方法调用程序

回答 1 投票 0

访问回调函数内的全局变量

请参阅以下函数来扫描目录中的文件(摘自此处) 函数 scandir_only_files($dir) { 返回 array_filter(scandir($dir), 函数 ($item) { 返回 is_f...

回答 1 投票 0

封装Sqlite查询回调函数C++

在sqlite3的C API中,函数sqlite3_exec需要一个回调函数作为参数,定义为 静态 int 回调(void* 数据,int argc,char** argv,char** azColName) 我想拥有它

回答 1 投票 0

在react中运行测试用例时出现未捕获的异常类型错误:handleFilter不是函数

我正在将参数从子功能组件传递到父组件。该值已成功传递,但是当我运行测试用例时,我收到错误 TypeError: handleFilter is not a func...

回答 1 投票 0

在 scipy.optimize.minimize 回调函数中访问 OptimizeResult

我正在尝试定义一个在优化时使用的回调函数。我只对每次迭代的当前目标函数值感兴趣。 文档表明,最优化

回答 1 投票 0

PHP:使用 array_filter

这实际上与我之前问的一个问题有关,其中有人好心地提供了一些我可以用来解决我提出的问题的代码。 现在,我理解了发布的大部分代码,un...

回答 2 投票 0

使用 Telebot 停止 Telegram 机器人回调时出错

我正在使用 Python 中的 Telebot 库开发 Telegram 机器人。该机器人有一个主菜单,其中包含两个命令:/cep 和 /person。使用/cep命令时,用户必须输入邮政编码才能获取

回答 1 投票 0

如何像使用 go-curl 一样为 net/http GET 请求设置读取回调?

我们有一个有效的 golang 程序,可以从大华相机获取快照/图像。我们希望增强此功能,为以下 URI 添加读取回调函数 - http://192.168.x.x/cgi-bin/

回答 1 投票 0

如何为http GET请求设置读取回调

我们有一个有效的 golang 程序,可以从大华相机获取快照/图像。我们希望增强此功能,为以下 URI 添加读取回调函数 - http://192.168.x.x/cgi-bin/

回答 1 投票 0

AsyncResult 与从 apply_async() 获取许多结果的回调

当使用Python的multiprocessing.Pool中的apply_async()方法时,有两种存储返回值的选项 - 要么保存AsyncResult对象并调用.get(),要么使用回调,我...

回答 1 投票 0

JavaScript:创建函数,返回一个对象,其键使用回调与值数组中的元素匹配

我的目标如下: 构造一个函数 multiMap ,它将接受两个数组 - 一个值数组和一个回调数组。 multiMap 将返回一个其键与元素匹配的对象...

回答 4 投票 0

无法通过单击C中的按钮gtk4来向框添加标签

我有以下代码,其中有一个包含标签、条目和按钮的框。 我为添加包含 EntryBuffer 中文本的标签的按钮设置了一个回调函数。 当我...

回答 1 投票 0

Firebase 功能,将同步/异步混乱变成干净的 ES6

我确实编写了一个 firebase 函数,它可以根据请求操作 PDF 文件,对其进行一些操作,将其保存回存储并将哈希值存档到数据库。 我确实设法让它工作,但是......

回答 1 投票 0

在react中回调到req body

我有一个名为PayResponse的回调页面,当信息从银行返回到此页面时,一些数据被发送到此页面。 该数据不是通过查询字符串发送的 它在 req body 中...

回答 1 投票 0

回调成功后如何从函数返回

嗨,在我的视图模型中,我有一个返回 NoDataResult 的函数,该函数有一个回调 BleStateCallback。 目前,根据下面的代码,一旦调用该函数,它就会返回

回答 1 投票 0

将 std::bind<> 传递给另一个类的构造函数的正确方法是什么? [已关闭]

我检查了以下链接,但无法解决我的问题: https://en.cppreference.com/w/cpp/utility/functions/function 如何在C++中通过绑定类方法来设置回调 我有3节课:

回答 1 投票 0

回调的JavaScript代码执行顺序与正常执行顺序矛盾

我似乎无法调和javascript执行序列的技术流程和回调的概念。我一直在使用回调,但我对执行流程不满意,因为它出现了

回答 2 投票 0

具有 Boxed 异步回调类型字段的结构的生命周期必须比“static”长

{ f: 盒子 销钉 我有这个最小的例子: use std::{future::Future, pin::Pin, thread::JoinHandle, fmt::Debug}; use tokio::runtime::Runtime; struct Callback<E> { f: Box<dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync>, } trait Provider { fn setup(&self) -> JoinHandle<()>; } enum Foo { A, B } trait IntoFoo { fn into_foo(&self) -> Foo; } impl<E: Debug + IntoFoo> Provider for Callback<E> { fn setup(&self) -> JoinHandle<()> { std::thread::spawn(move || { // Running async function sycnhronously within another thread. let rt = Runtime::new().unwrap(); rt.block_on(handle(Box::new(move || (self.f)()))) .expect("request loop failed") }) } } async fn handle<E: Debug + IntoFoo + 'static>( callback_fn: Box<dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync>) -> Result<(), E> { perform(Box::new(move || (callback_fn)())).await } pub async fn perform< E: Debug + IntoFoo>( op: Box<dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync>, ) -> Result<(), E> { (op)().await } 这是一些真实代码的简化版本,我基本上必须在结构内部传递异步回调。该回调通过多个函数传递。其中之一在新生成的线程中调用该函数。 当调用 handle 时,我得到的错误出现在线程生成代码中。 错误是: error: lifetime may not live long enough --> src/indexer/callback.rs:41:41 | 27 | fn bootstrap(&self, input: StageReceiver) -> BootstrapResult { | - let's call the lifetime of this reference `'1` ... 41 | rt.block_on(handle_event(input, Box::new(move |ev: &Event| (self.f)(ev)), &retry_policy, utils)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cast requires that `'1` must outlive `'static` 我应该如何安排这个?愿意更改结构字段类型和任何类似的内容。但我必须注意:这个函数必须能够被多次调用(它可能位于handle中的循环内)。 其他一些线程建议在 Box 中传递异步回调,其结果是固定的装箱特征对象。这就是我尝试这个系统的原因。 您不能在新线程中使用非 'static &self 引用。 一种选择是使用 Arc 而不是 Box,然后克隆它: use std::{fmt::Debug, future::Future, pin::Pin, sync::Arc, thread::JoinHandle}; use tokio::runtime::Runtime; struct Callback<E> { f: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync>, } trait Provider { fn setup(&self) -> JoinHandle<()>; } enum Foo { A, B, } trait IntoFoo { fn into_foo(&self) -> Foo; } impl<E: Debug + IntoFoo + 'static> Provider for Callback<E> { fn setup(&self) -> JoinHandle<()> { let f = Arc::clone(&self.f); std::thread::spawn(move || { // Running async function sycnhronously within another thread. let rt = Runtime::new().unwrap(); rt.block_on(handle(f)).expect("request loop failed") }) } } async fn handle<E: Debug + IntoFoo + 'static>( callback_fn: Arc< dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync, >, ) -> Result<(), E> { perform(callback_fn).await } pub async fn perform<E: Debug + IntoFoo>( op: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<(), E>> + Send + Sync>> + Send + Sync>, ) -> Result<(), E> { op().await } 您可以在较少的地方使用 Arc,并通过将回调包装在其自己的函数中并将其框起来,使用 Box 代替(如果您有需要使用的现有 API)。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.