gpt4 book ai didi

javascript - Nodejs如何使用函数的回调结果

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:25 25 4
gpt4 key购买 nike

我正在通过编写一个应用程序来管理我的飞利浦色调灯来学习nodejs,但我对nodejs的工作方式有疑问。

我有一个函数应该获取灯的所有 id:

id = [];

function getLightsId() {
args = {
path: {
"username": "myusername"
}
};

client.registerMethod("getLightState", "http://192.168.0.10/api/${username}/lights/", "GET");

client.methods.getLightState(args, function (data, response) {
for (key in data) {
id.push(key);
}
});
}

问题是,每当我想使用我的 id 数组时,它都是空的,因为 nodejs 没有处理 getLightsId 回调函数。

ps:我正在使用 node-rest-client 与我的 API 交互。

最佳答案

它处理了你的回调,只是该函数是异步。这意味着当您稍后尝试使用 id 变量时,它仍在上述回调中进行处理。您需要传入另一个回调,并在填充后将您的 id 变量传递给该回调:

function getLightsId(callback){
args ={
path:{"username":"myusername"}
};

client.registerMethod("getLightState", "http://192.168.0.10/api/${username}/lights/", "GET");

client.methods.getLightState(args, function(data,response){
var id = [];
for(key in data){
id.push(key);
}
callback(id);
});
}

你可以这样调用它:

getLightsId(function(idArray) {
console.log(idArray); //here they are
});

关于javascript - Nodejs如何使用函数的回调结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22719181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com