我的代码从谷歌翻译中获取翻译,将翻译推送到数组中,然后将翻译数组传递给下一个代码块。或者没有,具体取决于语法。这有效:
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);
Array#push
返回数组的新长度。如果您的数组为空,则在添加元素后,新长度为 1
。这就是1
的来源。
你不必使用Promise.resolve
,你只需要return translationArray;
。