0
我有上传图片类:等到方法完成后再下一个方法?
$myClass->upload();
nextMethod();
在此上传方法被执行(AWS S3)承诺:
$promise->then(function() { echo "Done\n"; }, function() { echo "Not Done\n"; });
我怎样才能让这个nextMethod不叫,直到承诺完成?
我有上传图片类:等到方法完成后再下一个方法?
$myClass->upload();
nextMethod();
在此上传方法被执行(AWS S3)承诺:
$promise->then(function() { echo "Done\n"; }, function() { echo "Not Done\n"; });
我怎样才能让这个nextMethod不叫,直到承诺完成?
因为承诺在默认情况下是异步的(即只在上传实际完成时注册要调用的回调),唯一的方法是执行承诺成功回调中的所有逻辑。 (即nextMethod()
)如果您需要使用父范围的变量,请将它们传递给use
语言构造。
$promise->then(function() { echo "Done\n"; nextMethod(); }, function() { echo "Not Done\n"; });
PHP不是异步的,所以你不应该需要承诺。 –
但AWS SDK是。在继续之前,我需要等待图像上传。所以在'那时候'我怎么能回到我的主要类? – panthro
查看[documentation](http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/promises.html):有一个“wait()”函数用于同步任务...即$'result = $ promise-> wait();' –