如何在node.js中等待云上可用的变量具有特定值

时间:2015-11-05 12:25:59

标签: node.js

如果这是一个基本问题,我很抱歉,但我正在尝试在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); 
}

1 个答案:

答案 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