"不推荐在没有回调的情况下调用异步函数。"但有一个回电

时间:2017-02-27 19:03:02

标签: javascript node.js asynchronous raspberry-pi3 deprecation-warning

我有一个函数可以根据数据库中的文档处理引脚的开关状态。这个函数使用了很多库,我相信其中一个引起了弃用(基于我在代码片段下面包含的弃用跟踪,我认为它是Raspberry PI的OnOff Gpio库)。哪个函数导致弃用?回滚Node的更新有什么不利之处?我真的很想听到一些意见,谢谢你提前。

MongoClient.connect(url, function (err, db) {
    if (err) {
        console.log('Unable to connect to the mongoDB server. Error:', err);
    } else {
        var collection = db.collection('re');//change as needed
        collection.findAndModify(
        {"restart":"sensor","value":false},
        {},
        {"$set":{"value":true}},
        {},
        function(err,result){
            if(err){
                throw err;
            }
            else{
                console.log(result);
                if(result.value!=null){
                    spin.write(0);
                    setTimeout(function() {
                        spin.write(1);
                    },10000);
                }
                else{
                    console.log("Sensor should stay on");
                    spin.write(1);
                }
            }
        });


    }
    db.close();
});
  

(node:10503)DeprecationWarning:调用异步函数   没有回调被弃用。

     

在maybeCallback(fs.js:98:42)

     

at Object.fs.write(fs.js:703:16)

     

at Gpio.write(/home/pi/node_modules/onoff/onoff.js:190:6)

     

at Object。 (/家/ PI /本地OPIO /最终:16:6)

     

在Module._compile(module.js:571:32)

     

at Object.Module._extensions..js(module.js:580:10)

     

在Module.load(module.js:488:32)

     

在tryModuleLoad(module.js:447:12)

     

在Function.Module._load(module.js:439:3)

     

在Module.runMain(module.js:605:10)

     运行时

(bootstrap_node.js:422:7)

     

启动时(bootstrap_node.js:143:9)

     

在bootstrap_node.js:537:3

1 个答案:

答案 0 :(得分:1)

您似乎只有3次调用onoff个套件write function,而且没有可选的回调功能。尝试将适当的回调(带有err参数)传递给每个调用。