2015-07-21 50 views
0

我有上传图片类:等到方法完成后再下一个方法?

$myClass->upload(); 
nextMethod(); 

在此上传方法被执行(AWS S3)承诺:

$promise->then(function() { echo "Done\n"; }, function() { echo "Not Done\n"; }); 

我怎样才能让这个nextMethod不叫,直到承诺完成?

+1

PHP不是异步的,所以你不应该需要承诺。 –

+0

但AWS SDK是。在继续之前,我需要等待图像上传。所以在'那时候'我怎么能回到我的主要类? – panthro

+1

查看[documentation](http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/promises.html):有一个“wait()”函数用于同步任务...即$'result = $ promise-> wait();' –

回答

0

因为承诺在默认情况下是异步的(即只在上传实际完成时注册要调用的回调),唯一的方法是执行承诺成功回调中的所有逻辑。 (即nextMethod())如果您需要使用父范围的变量,请将它们传递给use语言构造。

$promise->then(function() { echo "Done\n"; nextMethod(); }, function() { echo "Not Done\n"; }); 
相关问题