gpt4 book ai didi

javascript - 当前 Promise 完成后,ES6 无法返回新的 Promise

转载 作者:行者123 更新时间:2023-11-29 18:01:29 24 4
gpt4 key购买 nike

我需要以某种方式链接 Promise,然后我发现 Promise 可以完成这项工作。

我的要求是: addressService.get返回一个地址,一旦我得到这个地址并使用它进行另一个调用,该调用也返回一个 Promise。

所以我的代码是这样的:

class PersonService {
getPerson() {
addressService.get().then(({address}) => {
return 'http://localhost/${address}'
}).then(url) {
return new es6Promise.Promise(function(resolve, reject) {
ApiUtils.get(url, {}, {}, {
success: resolve, error: reject
});
});
}
}
}

PersonService's getPerson还应该返回一个 Promise,这是我返回的第二个 Promise (ApiUtils.get)

但是,当我调用 PersonService.getPerson().then() 时,上面的代码似乎没有返回 Promise。在其他地方,我得到一个错误说

Uncaught TypeError: Cannot read property 'then' of undefined 

我是不是漏掉了什么?

最佳答案

那是因为 getPerson() 什么都不返回。您缺少 return 关键字。

正确的结构是:

getPerson() {
return addressService.get()
.then(...)
.then(...);
}

旁注:还有其他几个拼写错误/小错误需要修复:

class PersonService {
getPerson() {
return addressService.get().then(({address}) => { // <== Added return at beginning of line
return `http://localhost/${address}`; // <== Use ` (backtick), not ', for template strings
}).then(url => { // <== Fixed typo
return new es6Promise.Promise(function(resolve, reject) {
ApiUtils.get(url, {}, {}, {
success: resolve, error: reject
});
});
}); // <== Fixed typo
}
}

关于javascript - 当前 Promise 完成后,ES6 无法返回新的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677598/

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