标签: callback

PHPMailer发送邮件成功但无法返回$.ajax成功部分

我使用 PHPMailer (gmail smtp) 从静态网站表单发送电子邮件。问题是,电子邮件发送成功,但我无法在 $.ajax 'success: function(result){}' 部分得到正确的响应,每次都会进入 'error: function(err){}' 。

网络服务器: XAMPP(本地主机)

代码如下:

HTML 表单:

<div id="contactus-form">
    <form id="contactUs" method="post">
        <p>
            <label for="name">Name:</label>
            <input type="text" id="name" class="formbox" name="name"/>
        </p>
        <p>
            <label for="email">Email:</label>
            <input type="email" id="email" class="formbox" name="email"/>
        </p>
        <p>
            <label for="comments">Comments:</label>
            <textarea name="comments" id="comments" rows="8"></textarea>
        </p>
        <p>
            <button form="contactUs" name="send" id="send" type="submit">Send Message</button>
        </p>
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#contactUs').submit(function() {
    var message = $("#comments").val();
    var name = $('#name').val();
    var email = $('#email').val();
    $.ajax({
        url: "PHPMailer/gmail.php", 
        method: "POST",
        data: { …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery callback phpmailer

1
推荐指数
1
解决办法
7063
查看次数

如何在Unity iTween插件中使用oncompleteparams?

我有代码:

iTween.MoveTo(
gameObject,
iTween.Hash("x",_x,"z",_y, "time", 2.0f, "easetype",
iTween.EaseType.easeInExpo,
"oncomplete", "afterPlayerMove",
"oncompleteparams", iTween.Hash("value", _fieldIndex)
));
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用oncompleteparams官方手册中没有示例。

如何使用 oncompleteparams ?

c# animation callback unity-game-engine itween

1
推荐指数
1
解决办法
3889
查看次数

Rails 5 - 如何在 before_save 回调条件上否定方法调用

在我的模板模型中,我有这个回调:

  before_save :set_status, if: :is_template?

  private

  def is_template?
    return self.template_type == 'template'
  end
Run Code Online (Sandbox Code Playgroud)

如何更改它,使其仅在 template_type 不是“模板”时触发?

我尝试过这些:

1 before_save :set_status, if: !:is_template?
2 before_save :set_status, if: !(:is_template?)
Run Code Online (Sandbox Code Playgroud)

但它们都会导致“before_save找不到方法”错误。

读完这个问题后,我也尝试过这个:

  before_save :set_status, if: Proc.new {|model| !model.is_template? }
Run Code Online (Sandbox Code Playgroud)

但对于这样一个简单的案例来说,这似乎有些过分了。

我真的需要编写另一种方法:is_not_template?才能使其工作吗?

ruby-on-rails callback before-save

1
推荐指数
1
解决办法
579
查看次数

回调函数的返回类型

我正在检查代码库的遗留代码,并遇到了以下代码:

void *sampleFunction(tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2)
{
    X100 *foo = getFooValue(...);
    return foo;
}
Run Code Online (Sandbox Code Playgroud)

由于我无法发布确切的代码(因为它与工作相关),因此我发布了上面的示例(这正是它的样子)。

X100这里显示的是一个保存一些数据的结构,并且有一个如下所示的回调函数,上面的函数被分配给它(或者这就是我看起来的样子)

typedef void* (*tFileReadVerifyCallback)((tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2);

tFileReadVerifyCallback callBack;

//for a certain case :
callBack = sampleFunction;
Run Code Online (Sandbox Code Playgroud)

现在,我有以下问题:

  1. 为什么sampleFunction返回foo的是类型X100?是因为回调的行为不同吗?
  2. 如果是这样,那么我的下一个问题是这些回调如何工作/返回值如何影响它?

注意:我试图提供足够的信息,同时尽量保持最少。如果需要更多输入,请告诉我,我会尝试编辑它并添加更多信息。

c callback return-type

1
推荐指数
1
解决办法
659
查看次数

如何在 Rust 中使用 SetWindowsHookEx?

我试图弄清楚如何在 Rust 内部设置全局 Windows 挂钩。我可以找到其他语言的多个示例,但 Rust 似乎没有任何示例。

到目前为止我所取得的成果:

extern crate user32;
extern crate winapi;

const WH_KEYBOARD_LL: i32 = 13;
fn main() {
    let hook_id = user32::SetWindowsHookExA(
        WH_KEYBOARD_LL,
        Some(hook_callback),
        // No idea what goes here ,
        0,
    );
}

fn hook_callback(code: i32, wParam: u64, lParam: i64) -> i64 {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨它需要一个fn用于回调函数的“系统”,但是得到了一个 Rust fn,这是有道理的,但我仍然不知道如何使其工作。

从我从文档中收集到的信息来看,第三个参数hMod 应该指向具有回调函数的同一个模块,其他语言中的示例使用一些获取当前模块句柄的函数,但我不知道如何在锈。

windows hook winapi callback rust

1
推荐指数
1
解决办法
2347
查看次数

C++ 如何等待在另一个线程上执行的方法然后主线程完成(VS2010)

我有一个方法,它在另一个线程上执行,然后在主线程上执行。如果完成,它会调用回调。但主线程必须等待,否则它会销毁回调想要返回的对象。

现在,为了简单起见,我有以下代码:

int main()
{
    Something* s = new Something();
    s.DoStuff(); // Executed on another thread
    delete (s); // Has to wait for DoStuffCallback() to be executed
}

void Something::DoStuff()
{
    // Does stuff
    // If done, calls its callback
}
void Something::DoStuffCallback()
{
    // DoStuff has finished work
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能等到 DoStuffCallback() 执行然后继续主线程?

多谢!

编辑:

对我不起作用,因为我无法访问正确的编译器。(我已经提到VS2010)

c++ multithreading callback

1
推荐指数
1
解决办法
271
查看次数

调用node-oracledb的createPool方法

我正在创建一个使用 Node.js 和 Express 的 RESTful API。我的应用程序使用 Oracle 数据库,因此我从 npm 安装了 node-oracledb 模块。我浏览了文档并查看了模块的 github 页面中提供的一些示例;但是,我没有看到任何使用连接池的示例。如果我错了,请纠正我,但对于需要多次调用数据库的应用程序,建议使用连接池而不是使用独立连接。下面是我编写的代码示例:

createPool = function(poolAttrs, fetchPool){
  oracledb.createPool(poolAttrs, function(error, pool){
    if(error){
      console.error(`Could not create pool using specified attributes: `, error.message);
    }
    else{
      console.log(`Pool created successfully using poolAlias: ${poolAttrs.poolAlias}`);
      fetchPool(pool);
    }
  });
};

createConnection = function(poolAlias, connection){
  oracledb.getConnection(poolAlias, function(error, conn){
    if(error){
      console.error(`Could not get connection: `, error.message);
    } else {
      console.log(`New connection obtained: ${conn}`);
      connection(conn);
    }
  });
};

executeQuery = function(queryString, poolAlias){
  console.log(queryString);
  var conn = createConnection(poolAlias, function connection(conn){ …
Run Code Online (Sandbox Code Playgroud)

javascript callback node.js node-oracledb

1
推荐指数
1
解决办法
1万
查看次数

为 Future 回调编写 junit 测试用例

有人可以帮助为下面的代码部分(尤其是添加回调部分)编写 JUnit 测试吗?我不知道如何使用回调为 Listenablefuture 编写单元测试用例

    private void handleResponse(final ListenableFuture<UserRecordResult> response, CompletableFuture future) {

        Futures.addCallback(response, new FutureCallback<UserRecordResult>() {

            @Override
            public void onFailure(@Nonnull Throwable throwable) {

                future.completeExceptionally(new Exception("Fail to put record" + throwable.getMessage()));
            }

            @Override
            public void onSuccess(UserRecordResult result) {
                if(result.isSuccessful()) {
                    future.complete(true);
                } else {
                    future.completeExceptionally(new Exception("Fail to put record"));
                }
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

java junit callback async-await completable-future

1
推荐指数
1
解决办法
8457
查看次数

加载带有回调的 Gensim FastText 模型失败

使用 Gensim 创建 FastText 模型后,我想加载它,但遇到了似乎与回调相关的错误。

用于创建模型的代码是

TRAIN_EPOCHS = 30
WINDOW = 5
MIN_COUNT = 50
DIMS = 256

vocab_model = gensim.models.FastText(sentences=model_input,
                                     size=DIMS,
                                     window=WINDOW,
                                     iter=TRAIN_EPOCHS,
                                     workers=6,
                                     min_count=MIN_COUNT,
                                     callbacks=[EpochSaver("./ftchkpts/")])

vocab_model.save('ft_256_min_50_model_30eps')
Run Code Online (Sandbox Code Playgroud)

回调EpochSaver定义为

from gensim.models.callbacks import CallbackAny2Vec

class EpochSaver(CallbackAny2Vec):
    '''Callback to save model after each epoch and show training parameters '''

    def __init__(self, savedir):
        self.savedir = savedir
        self.epoch = 0
        os.makedirs(self.savedir, exist_ok=True)

    def on_epoch_end(self, model):
        savepath = os.path.join(self.savedir, f"ft256_{self.epoch}e")
        model.save(savepath)
        print(f"Epoch saved: {self.epoch + 1}")
        if os.path.isfile(os.path.join(self.savedir, f"ft256_{self.epoch-1}e")):
            os.remove(os.path.join(self.savedir,  f"ft256_{self.epoch-1}e"))
            print("Previous model …
Run Code Online (Sandbox Code Playgroud)

python callback gensim fasttext jupyter-lab

1
推荐指数
1
解决办法
1032
查看次数

如何通过 EarlyStopping 或 ModelCheckpoint 使用回调中的自定义指标?

我想在另一个回调(例如 EarlyStopping 或 ModelCheckpoint)中使用来自回调的自定义指标。但我需要以某种方式保存/存储/记录这个自定义指标,以便其他回调可以访问它?

\n\n

我有:

\n\n
class Metrics(keras.callbacks.Callback):\n    def on_train_begin(self, logs={}):\n\n        self.precision = []\n        self.f1s = []\n        self.prc=0\n        self.f1s=0\n\n    def on_epoch_end(self, epoch, logs={}):\n        score = np.asarray(self.model.predict([self.validation_data[0],self.validation_data[1]]))\n        predict = np.round(np.asarray(self.model.predict([self.validation_data[0],self.validation_data[1]])))\n        targ = self.validation_data[2]\n\n        predict = (predict < 0.5).astype(np.float)\n\n\n        self.prc=sklm.precision_score(targ, predict)\n        self.f1s=sklm.f1_score(targ, predict)\n        self.precision.append(prc)\n        self.f1s.append(f1s)\n\n        print("\xe2\x80\x94 val_f1: %f \xe2\x80\x94 val_precision: %f" %(self.f1s, self.prc))\n        return\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,

\n\n
metrics = Metrics()\n\nes = EarlyStopping(monitor=metrics.prc, mode=\'max\', verbose=1, patience=3,min_delta=0.01,restore_best_weights=True)\n\nmodel.compile(loss=contrastive_loss, optimizer=adam)\nmodel.fit([train_sen1, train_sen2], train_labels,\n          batch_size=512,\n          epochs=20,callbacks=[metrics,es],\n          validation_data=([dev_sen1, dev_sen2], dev_labels))\n
Run Code Online (Sandbox Code Playgroud)\n\n

不起作用,因为 Earlystopping 不知道自定义精度指标?

\n\n

有人知道这个回调日志语句吗?我可以在那里保存我的指标吗?

\n

callback keras

1
推荐指数
1
解决办法
2339
查看次数