gpt4 book ai didi

javascript - NodeJS Promise,延迟返回值

转载 作者:行者123 更新时间:2023-12-01 03:38:20 24 4
gpt4 key购买 nike

我对 NodeJS 和 JavaScript 比较陌生,但对编程不太熟悉。

我希望在通过 SSH2 执行两个 SSH 命令并且 shell 中命令的输出已被解析后返回一个对象数组。我尝试了各种 Promise 和我在网上找到的示例,但没有成功。看起来他们只是返回空数组,甚至没有等待命令执行。我正在寻找任何样本或正确方向的点。

return Promise.resolve().then(function() {
devicesAndScenes = [];
executeCommand(JSON.stringify(getDeviceJson));
executeCommand(JSON.stringify(getSceneJson));
}).then(sleep(2000)).then(function() {
return devicesAndScenes;
});

function sleep(time) {
return new Promise(resolve => {
setTimeout(resolve, time)
})
}

最佳答案

问题是第二个 .then (带有 sleep() 函数的那个​​)没有返回 promise ,因此它会立即解决,而不是在执行最后一个.then

之前等待指定的 时间
return Promise.resolve()
.then(() => {
/* ... */
})
.then(() => {
/* your problem was here, if we add a return it should work properly */
return sleep(2000)
})
.then(() => {
/* now this wil be executed after the 2000s sleep finishes */
});

*在箭头函数中使用了括号语法,使它们更加清晰。

关于javascript - NodeJS Promise,延迟返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081330/

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