等待方法完成后再执行下一个方法


Wait until method completes before next method?

我有一个上传图片的类:

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

在这个上传方法中,一个(AWS S3)承诺被执行:

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

我怎样才能使nextMethod在promise完成之前不被调用?

因为默认情况下promise是异步的(即只在上传实际完成时才注册回调),所以唯一的方法就是执行promise成功回调的所有逻辑。(即nextMethod())如果你需要使用来自父作用域的变量,将它们传递给use语言构造。

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