JavaScript承诺不会将数据传递给。然后,除非我显式使用Promise.resolve
我的代码从Google translate获取翻译,将翻译推送到数组中,然后将翻译数组传递给下一个代码块。或者它没有,这取决于语法。这项工作:JavaScript承诺不会将数据传递给。然后,除非我显式使用Promise.resolve,javascript,promise,Javascript,Promise,我的代码从Google translate获取翻译,将翻译推送到数组中,然后将翻译数组传递给下一个代码块。或者它没有,这取决于语法。这项工作: translate.translate(text, target) .then(function(results) { translation = results[0]; translationArray.push(translation); return Promise.resolve(translationArray); }) .then
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);
translationaray
记录为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);
返回数组的新长度。如果数组为空,则在添加元素后,新长度为1
。这就是1
的来源
您不必使用Promise.resolve
,只需返回translationArray代码>返回数组的新长度。如果数组为空,则在添加元素后,新长度为1
。这就是1
的来源
您不必使用Promise.resolve
,只需返回translationArray
如果.push()
确实返回了数组引用,那就太好了,但是唉。@Pointy常量push=(a,…元素)=>(a.push(…元素),a)
;)如果.push()
确实返回了数组引用,那就太好了,但是唉。@Pointyconst push=(a,…elements)=>(a.push(…elements),a)
;)