gpt4 book ai didi

javascript - promise 被拒绝或履行困惑

转载 作者:行者123 更新时间:2023-11-28 21:24:10 26 4
gpt4 key购买 nike

我有一个 promise 函数

create(data) {
return new Promise((resolve, reject) => {
const datetime = Date.parse(new Date());
data.createdAt = datetime;
data.updatedAt = datetime;
this._db.collection(this._table).insertOne(data, (err) => {
if (err) {
this._logger.error(err);
reject(err);
} else {
resolve(data);
}
});
});
}

并为其编写单元测试

it('should reject insertion', () => {
const promise = Agent.create(data).then(() => (Agent.create(data)));
return expect(promise).to.be.rejected;
});

此断言通过。但是如果单元测试是:

it('should reject insertion', () => {
const promise = Agent.create(data).then(Agent.create(data));
return expect(promise).to.be.rejected;
});

它失败了。错误是 AssertionError: expected promise to be rejected but it was fulfilled with { Object (_id, role, ...) }

这两种做法的区别在哪里?我还没有得到它。

最佳答案

正如评论中的许多人指出的那样,您在第一种情况下传递一个函数,而在另一种情况下传递返回值,这是一个 promise 。这就是您看到结果差异的原因。

关于javascript - promise 被拒绝或履行困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44901169/

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