gpt4 book ai didi

JavaScript promise 不会将数据传递给 .then 除非我明确使用 Promise.resolve

转载 作者:行者123 更新时间:2023-11-28 14:24:15 25 4
gpt4 key购买 nike

我的代码从 Google 翻译获取翻译,将翻译推送到数组中,然后将翻译数组传递到下一个代码块。或者它不会,具体取决于语法。这有效:

translate.translate(text, target)
.then(function(results) {
translation = results[0];
translationArray.push(translation);
return Promise.resolve(translationArray);
})
.then(function(translationArray) {
console.log(translationArray);

此代码不起作用:

translate.translate(text, target)
.then(function(results) {
translation = results[0];
return translationArray.push(translation);
})
.then(function(translationArray) {
console.log(translationArray);

translationArray 记录为 11 是什么意思?为什么我需要显式使用 Promise.resolve

我尝试过这个,但没有帮助:

const finalPromise = translate.translate(text, target)
.then(function(results) {
translation = results[0];
return translationArray.push(translation);
})
.then(function(translationArray) {
console.log(translationArray);

最佳答案

Array#push返回数组的新长度。如果数组为空,则添加元素后新长度为 1。这就是 1 的来源。

您不必使用Promise.resolve,您只需要返回translationArray;

关于JavaScript promise 不会将数据传递给 .then 除非我明确使用 Promise.resolve,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137387/

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