commercetools SDK v3库存API端点间歇性返回undefined问题求助
Commercetools V3 SDK 库存API按Key查询间歇性返回undefined问题
升级到Commercetools V3 SDK后,遇到一个诡异的间歇性故障:调用库存API的基础查询接口(通过withKey指定key)时,SDK内部函数预期的res值偶尔会变为undefined,失败概率约50%。
调用代码
const existingItem = (await getApiRoot()).inventory().withKey({ key }).get().execute()
故障表现
- 成功时返回包含body的预期响应;随机失败时抛出错误:
Cannot read properties of undefined (reading 'error') - 本地测试时每次传入的key完全一致,多次连续执行结果随机
- 使用即将停止维护的V2 API执行相同代码无此问题,仅V3出现该现象
- 同代码库中调用Payment API(使用
.withId({ ID: paymentId}))无此问题,仅库存API用withKey时触发
错误来源
错误出自SDK库文件node_modules\@commercetools\ts-client\dist\commercetools-ts-client.cjs.dev.js第1461行,then语句中的res变为undefined,相关代码块:
const dispatch = compose(middlewares)(resolver.resolve); return { process: process$1, execute(request) { validate('exec', request); return new Promise((resolve, reject) => { dispatch({ reject, resolve, ...request }).then(res => { if (res.error) { reject(res.error); } else { resolve(res); } }).catch(reject); }); } };
日志信息
添加日志后,错误发生时的日志显示请求参数正常,但res为undefined:
[2024-08-01T14:48:32.211Z] this was the request: { [2024-08-01T14:48:32.214Z] baseUri, [2024-08-01T14:48:32.216Z] method: 'GET', [2024-08-01T14:48:32.218Z] uriTemplate: '/{projectKey}/inventory/key={key}', [2024-08-01T14:48:32.219Z] pathVariables: { projectKey, key }, [2024-08-01T14:48:32.221Z] headers: {}, [2024-08-01T14:48:32.222Z] queryParams: undefined, [2024-08-01T14:48:32.222Z] uri [2024-08-01T14:48:32.223Z] } [2024-08-01T14:48:32.223Z] this is the res: undefined undefined [2024-08-01T14:48:32.224Z] an issue occurred [2024-08-01T14:48:32.225Z] Problem getting existing item Cannot read properties of undefined (reading 'error')
想问下有没有其他人遇到过类似的间歇性问题?
内容的提问来源于stack exchange,提问作者jmcgriz
相关产品推荐
相关产品推荐

