callback 相关问题

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

如何像使用 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

jQuery.ajax成功回调函数未执行

我有一个 JavaScript Ajax 调用 (jQuery.ajax),它不执行成功回调函数。 $.ajax({ 网址:目标, 内容类型:'应用程序/json;字符集=utf-8', 典型...

回答 8 投票 0

如何在变形金刚训练器运行中禁用海王星回调?

安装 Neptune.ai 进行偶尔的 ML 实验日志记录后,它默认包含在所有 Transformers.trainer 运行的回调列表中。因此,需要适当的

回答 3 投票 0

在 Plotly dash 应用程序中将值从回调传递到回调

我有一个带有绘图图的破折号应用程序,我有两个回调,我想从用户获取输入,将其与 dcc.store 一起存储在 id 为“stkName-value”的变量中,并在另一个回调中调用它...

回答 1 投票 0

将基于回调/事件的 C API 转换为“非回调”API

我正在尝试在 C 中构建二进制格式和 JSON 之间的双向转换(以使映射可编写脚本)。我查看了 13 个 C JSON 解析器,只发现 2 个具有我想要的所有功能...

回答 1 投票 0

回调通知Pyads的返回值

我正在使用 pyads 通过 ADS 从 PLC 提取数据并在 python 中处理这些数据。 由于我必须非常快地提取数据(200 毫秒周期),所以我使用 ADS 通知来获取值,当它们...

回答 1 投票 0

c++中使用c回调注册函数的方法(google测试)

我有一个c文件可以从google test测试它。它有一个回调函数及其注册函数。 如何为 gtest 注册回调?这是示例代码: #包括 我有一个 c 文件可以从 google test 进行测试。它有一个回调函数及其注册函数。 如何为 gtest 注册回调?这是示例代码: #include <gtest/gtest.h> ///////////////////////////////////////// // I have this code in c file ///////////////////////////////////////// void (*add)(int a, int b); void RegisterAddCallback(void (*callback)(int a, int b)) { add = callback; } ///////////////////////////////////////// // I use this way currently // static int s_value; // static void add_static_callback(int a, int b) // { // s_value = a + b; // } class CallbackTests : public ::testing::Test { public: int m_value; void SetUp() override { m_value = 0; } static void add_static_callback(int a, int b) { // can't add m_value here, but I need it int value = a + b; } }; TEST_F(CallbackTests, StaticCallback) { RegisterAddCallback(add_static_callback); add(1, 2); EXPECT_EQ(m_value, 3); } 这是测试结果。我想通过使用夹具将 m_value 设为 3。但我对任何工作方式都持开放态度。 Expected equality of these values: m_value Which is: 0 3 [ FAILED ] CallbackTests.StaticCallback (0 ms) 一个函数做一些没有被外部反映的事情有什么意义呢?您需要将 add 指针更改为函数。 您有很多选择,所有这些都包括向静态方法添加参数,或返回值: 添加对结果的引用,例如: static void add_static_callback(int& res, int a, int b) { res = a+b; } //call with: add(m_value, 1, 2); 添加返回值,但您需要更改 add 指向函数的指针。

回答 1 投票 0

Dart:回调方法未执行

在熟悉Dart和回调方法的同时,我尝试在dartpad中运行以下代码。但是,函数 fIn() 并未执行。谁能告诉我为什么吗? 无效主(){ int c...

回答 1 投票 0

如何将回调函数定义为参数

我想用 Alamofire 创建一个全局 HTTP 请求函数/扩展。就像是: 函数请求(requestPath:字符串,requestParams:Any,onComplate:Void){ // 这里的东西,当异步请求时...

回答 3 投票 0

rails 中的 after_touch 回调何时被调用

Rails 中的 after_touch 回调如何工作?是在对象更新时调用还是仅在创建新对象时调用?

回答 3 投票 0

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