gpt4 book ai didi

node.js - 将 Promise 设置为变量并在稍后使用它

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:05 24 4
gpt4 key购买 nike

我想通过以下方式将 promise 分配给变量:

const createSingleUser = function createSingleUser(userData) {
return new Promise((resolve, reject) => {
new User(userData)
.save()
.then((user) => {
resolve(user, 'user');
})
.catch((error) => {
reject(error);
});
});
};

let createUsers;
if (users instanceof Array) {
// If we have an array, we're batch creating users
createUsers = new User().createBatchUsers(users); // returns promise
} else {
// If we have a single object, we're only creating one user
createUsers = new User().createSingleUser(users); // returns promise
}
createSingleUser(users)
createUser
.then((result) => {
.....

但是,由于时间问题,这不起作用。是否有另一种方法可以构建这样的构造,而不必编写两次 promise 链?

编辑 正如@torazaburo 提到的,如果您创建一个 promise ,它将开始运行。您可以将其分配给一个变量,但该变量将代表正在运行的 promise 。这就是我面临的问题。情况就是这样,因为 createSingleUser 是一个(Promise)对象而不是一个函数。

最佳答案

您已经只编写了一次 promise 链:

let createdUsers;
if (users instanceof Array) {
createdUsers = new User().createBatchUsers(users);
} else {
createdUsers = new User().createSingleUser(users);
}
// createSingleUser(users)
// ^^^^^^^^^^^^^^^^^^^^^^^ make sure to drop this line
createdUsers
.then((result) => {
… // handle both cases here
})

关于node.js - 将 Promise 设置为变量并在稍后使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238216/

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