Node.JS 异步函数 运行 永远没有结果
Node.JS async function running forever no result
我不熟悉 JS 中的 async / await 和 promises 等。我正在尝试构建一些实际上似乎可以工作的软件。但是,有一个功能没有完成,似乎永远 运行 而没有 return 结果。这是我的代码:
module.exports.visit = (val) => {
let visit_date = Date.now();
let data_json;
let insert;
client.get(val)
.then( (data) => {
data_json = JSON.parse(data);
data_json.count += 1;
data_json.last_visited = visit_date;
insert = JSON.stringify(data_json);
client.set(val,insert);
console.log(insert);
return data_json.url;
})
.catch((err) => {
console.log(err);
});
}
调用此函数的函数(为了returnurl):
async function visitor() {
// also doesn't work with let a = await helpers.visit('6q9ootm8p7');
let a = helpers.visit('6q9ootm8p7');
return a;
}
visitor();
如果有人能指出我相同的方向,我将不胜感激。
helpers.visit
必须 return 一个承诺。目前,它是无效的。尝试:
return client.get(val)
.then(() => {
// provide your code here, and return the data
return ... ;
})
.catch(error => {
console.error(error);
// if you catch an error, you should provide your result data too
return ... ;
})
;
我不熟悉 JS 中的 async / await 和 promises 等。我正在尝试构建一些实际上似乎可以工作的软件。但是,有一个功能没有完成,似乎永远 运行 而没有 return 结果。这是我的代码:
module.exports.visit = (val) => {
let visit_date = Date.now();
let data_json;
let insert;
client.get(val)
.then( (data) => {
data_json = JSON.parse(data);
data_json.count += 1;
data_json.last_visited = visit_date;
insert = JSON.stringify(data_json);
client.set(val,insert);
console.log(insert);
return data_json.url;
})
.catch((err) => {
console.log(err);
});
}
调用此函数的函数(为了returnurl):
async function visitor() {
// also doesn't work with let a = await helpers.visit('6q9ootm8p7');
let a = helpers.visit('6q9ootm8p7');
return a;
}
visitor();
如果有人能指出我相同的方向,我将不胜感激。
helpers.visit
必须 return 一个承诺。目前,它是无效的。尝试:
return client.get(val)
.then(() => {
// provide your code here, and return the data
return ... ;
})
.catch(error => {
console.error(error);
// if you catch an error, you should provide your result data too
return ... ;
})
;