这是我的密码:
const Database = require("@replit/database");
const db = new Database();
db.set("test", "wow").then(() => {});
console.log(db.list().then(keys => {}));我已经安装了数据库包,它说我的repl的数据库部分中有一个键,但是它不是记录键列表的控制台,我没有收到错误。只有这一点在控制台中:
Promise { <pending> }
Hint: hit control+c anytime to enter REPL.发布于 2021-04-09 18:57:31
似乎有两个问题:
set和list之间的一个竞争条件--它是不确定的,首先会触发。thens - console.log()来同步记录一个悬而未决的承诺,而不是只在then回调中可用的已完成承诺的结果。g 210
db.set("test", "wow")
.then(() => db.list()) // ensure `list` runs after `set` resolves
.then(keys => console.log(keys)) // ensure `keys` are logged after `list` resolves您还可以使用async/await
(async () => {
await db.set("test", "wow");
const keys = await db.list();
console.log(keys);
})();这通常被认为是更直观的阅读,因为它类似于同步代码,但它只是then方法的语法糖。
https://stackoverflow.com/questions/67026674
复制相似问题