我想用promise插入数据3表,但我遇到了一个问题。我想在tasks表中插入数据,得到结果insert id,在其他表中插入该id,然后得到这个insert id,在其他表中插入该id。我想用promise.all函数来做这件事。这是我的代码。
addClientTable(insertTask)
.then(client_res => {
return client_res.insertId;
})
.then(clientInsId => {
insertTask.task.client_id = clientInsId;
addTaskTable(insertTask)
.then(task_res => {
if (insertTask.task.connection == 0) {
updateTaskConnection(task_res.insertId)
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
})
}
return task_res.insertId;
})
.then(taskInsId => {
addTaskUsersTable(user_ids, taskInsId, clientInsId)
.then(result => {
resolve(result);
})
})
.catch(err => {
reject(err);
})
})
.catch(err => {
reject(err);
});
2条答案
按热度按时间yqkkidmi1#
任何承诺的回报都是可以实现的。
在此基础上,您还可以修改您的代码如下所示。
尽管使用async/await是一种可行的方法。
p1tboqfb2#
我认为没有必要
Promise.all
但是为了更干净的代码和避免嵌套.then()
,我建议async/await
,承诺的甜言蜜语语法,您的代码应该如下所示: