PHP 的 SparkPost 客户端库:异步 promise.then() 发送不发送
SparkPost client library for PHP: asynch promise.then() send not sending
我正在使用来自
https://github.com/SparkPost/php-sparkpost#send-an-email-using-the-transmissions-endpoint
此处使用异步承诺:
https://github.com/SparkPost/php-sparkpost#then-asynchronous
一切都已使用 Composer 正确安装。如果我使用 $response = $promise->wait();电子邮件已发送但未发送 $promise->then(function(){}, function(){})
我是 运行 php 来自命令行的脚本,异步选项设置为 true
/// this works:
try {
$response = $promise->wait();
echo $response->getStatusCode()."\n";
print_r($response->getBody())."\n";
} catch (\Exception $e) {
echo $e->getCode()."\n";
echo $e->getMessage()."\n";
}
// but this doesn't
$promise->then(
// Success callback
function ($response) {
echo $response->getStatusCode()."\n";
print_r($response->getBody())."\n";
},
// Failure callback
function (Exception $e) {
echo $e->getCode()."\n";
echo $e->getMessage()."\n";
}
);
SparkPost 文档中存在错误(或只是错误的假设)。
无论如何你都得打电话给->wait()
。因此,只需在第二个脚本的末尾添加 $promise->wait();
,就可以了。
"somehow" 我的意思是您可以使用 all()
, some()
and other functions.
将 promise 组合在一起
我正在使用来自 https://github.com/SparkPost/php-sparkpost#send-an-email-using-the-transmissions-endpoint
此处使用异步承诺: https://github.com/SparkPost/php-sparkpost#then-asynchronous
一切都已使用 Composer 正确安装。如果我使用 $response = $promise->wait();电子邮件已发送但未发送 $promise->then(function(){}, function(){})
我是 运行 php 来自命令行的脚本,异步选项设置为 true
/// this works:
try {
$response = $promise->wait();
echo $response->getStatusCode()."\n";
print_r($response->getBody())."\n";
} catch (\Exception $e) {
echo $e->getCode()."\n";
echo $e->getMessage()."\n";
}
// but this doesn't
$promise->then(
// Success callback
function ($response) {
echo $response->getStatusCode()."\n";
print_r($response->getBody())."\n";
},
// Failure callback
function (Exception $e) {
echo $e->getCode()."\n";
echo $e->getMessage()."\n";
}
);
SparkPost 文档中存在错误(或只是错误的假设)。
无论如何你都得打电话给->wait()
。因此,只需在第二个脚本的末尾添加 $promise->wait();
,就可以了。
"somehow" 我的意思是您可以使用 all()
, some()
and other functions.