我的代码从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
记录为1
。 1
是什么意思?为什么需要显式使用Promise.resolve
?
我尝试了这个,但没有帮助:
const finalPromise = translate.translate(text, target)
.then(function(results) {
translation = results[0];
return translationArray.push(translation);
})
.then(function(translationArray) {
console.log(translationArray);
答案 0 :(得分:4)
Array#push
返回数组的新长度。如果您的数组为空,则在添加元素后,新长度为1
。这就是1
的来源。
您不必使用Promise.resolve
,只需使用return translationArray;
。