gpt4 book ai didi

Bluebird Promise join 未按顺序运行

转载 作者:行者123 更新时间:2023-12-02 22:03:47 25 4
gpt4 key购买 nike

我将promise与knexjs一起使用,但为什么promise join没有按顺序运行,行在插入后被删除:

exports.seed = function(knex, Promise) {
return Promise.join(
knex('states').del(),
knex('states').insert([
{
'id': 1,
'name': 'Georgia'
},
{
'id': 2,
'name': 'Tennessee'
}
]);
);
};

最佳答案

Join 用于并行运行的 Promise,而不是按顺序运行。 “For coordinating multiple concurrent discrete promises。”由于您想在插入之前删除它们,因此它们不是并发的。

Promise 在创建后立即执行,所以我认为这是常规 then 的情况:

exports.seed = function(knex, Promise) {
return knex('states').del()
.then(function() {
return knex('states').insert([
{
'id': 1,
'name': 'Georgia'
},
{
'id': 2,
'name': 'Tennessee'
}
]);
);
};

如果你喜欢 ES6 并且喜欢让事情排列起来:

exports.seed = (knex) => {
return B.resolve()
.then(() => knex('states').del())
.then(() => knex('states').insert([
{
'id': 1,
'name': 'Georgia'
},
{
'id': 2,
'name': 'Tennessee'
}
]));
}

关于Bluebird Promise join 未按顺序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36840769/

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