如果这是一个基本问题,我很抱歉,但我正在尝试在node.js中实现一个程序,该程序应该通过对云api的请求等待变量的值(photon.variable())为1.此变量不应每秒请求超过一次。我的第一次尝试包含在下面的示例代码中。尽管知道它根本不起作用,但我认为展示我想要实现的功能可能很有用。
var photondata = 0;
while (photondata < 1)
{
setTimeout(function () {
photon.variable("witok", function(err, data) {
if (!err) {
console.log("data: ", data.result);
photondata = data.result;
}
else console.log(err);
})}, 1000);
}
答案 0 :(得分:1)
由于您之前无法在循环中执行异步填充,因此传统方法是创建一个函数,只要需要将其自身添加到function scanDirectory($userdir = '', $directory){
$folders = glob($userdir . '/*' , GLOB_ONLYDIR);
foreach($folders as $folder){
echo($folder.'</br>');
if (($folder == $directory && gator::checkPermissions('r')) || (gator::checkPermissions('ru')) || ($userdir == $directory && gator::checkPermissions('r'))) {
return true;
}
$scan_result = scanDirectory($folder, $directory);
if($scan_result) {
return true;
}
}
return false;
}
scanDirectory($userdir, $directory);
?>
<?php if ($getprivileges == true): ?>
<p>Permissions granted.<p>
<?php endif; ?>
,然后在完成后调用其他函数。如果不使用Babel,您仍然需要在浏览器中执行此操作。
现在,您可以停止执行并等待使用生成器功能(现在支持最新版本的Node)时发生的事情。有许多图书馆可以让你这样做,我会宣传ours:)
setTimeout