У меня есть компонент продукта и компонент продукта. Каждый продукт будет иметь владелецVueJS Promise не работает
То, что я пытаюсь сделать
Я получаю список продуктов путем вызова API конечной точки. Когда обещание будет разрешено, у меня есть список продуктов. Каждый продукт имеет идентификатор владельца. Я пытаюсь вызвать другую конечную точку API, чтобы получить имя владельца и назначить его текущему итератору.
Мой код до сих пор
<script>
var config = require('../config');
export default {
data() {
return {
products: [],
}
},
ready() {
this.getProducts().then(t => {
console.log(t);
});
},
methods : {
getProducts : function() {
let url = config.API.GetProduct
this.$http.get(url).then(response=> {
this.products = response.data.resource;
var p = this.products.map(this.getOwner);
return Promise.all(p);
}, error=> {
console.error("An error happened!")
});
},
getOwner : function(product) {
let url = config.API.GetProductOwnerName.replace('[$$$]', product.OwnerID);
var p = new Promise();
this.$http.get(url).then(response => {
product.OwnerID = response.data.resource[0].OwnerName;
p.resolve(currentObj);
});
return p;
}
}
components: {}
}
</script>
ошибка, я столкнулся
Теперь всякий раз, когда я пытаюсь сделать это, я получаю следующие ошибки
Uncaught TypeError: Cannot read property 'then' of undefined
Uncaught (in promise) TypeError: Promise resolver undefined is not a function(…)
Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно здесь?
Благодаря
Спасибо. Но у меня все еще такая же проблема. – Gagan
@Gagan выглядит хорошо для меня здесь https://jsfiddle.net/3q5cwuha/ – Hkan
Я видел ваш код. таким образом даже мой код работает. что я действительно хочу сделать, поскольку у меня, ИМО, есть много продуктов, которые я хочу обрабатывать с помощью обещаний. В вашем случае, поскольку это очень маленький объект, обещание быстро разрешается и, следовательно, вы видите сообщение. Возможно, я ошибаюсь, но это то, что я думаю. – Gagan