类型 'boolean' 不可分配给类型 'Promise<boolean>'
Type 'boolean' is not assignable to type 'Promise<boolean>'
我正在使用应用内购买,如果由于某种原因我无法从 Google 或 [= 检索产品信息,我想将 UI 更改为 'unavailable' 41=] 应用商店。
ionViewDidEnter() {
this.platform.ready().then(async () => {
firebase.auth().onAuthStateChanged(async user => {
this.currentUser = user;
});
this.unavailable = await this.setupProducts();
console.log('available', this.unavailable);
});
}
setupProducts(): Promise<boolean> {
let productWWHS: string;
let productISA: string;
if (this.platform.is('ios')) {
productWWHS = 'prodID';
productISA = 'prodID';
} else if (this.platform.is('android')) {
productWWHS = 'prodID';
productISA = 'prodID';
}
this.inAppPurchase.ready(() => {
this.products.push(this.inAppPurchase.get(productWWHS));
this.products.push(this.inAppPurchase.get(productISA));
if (!this.products[0]) {
return true;
}
});
return false;
}
我在这个方法中做错了,它有错误
类型 'boolean' 不可分配给类型 'Promise'
我想以某种方式断言 inAppPurchase.get() 已经 return 编辑了一些东西,但它没有 return 承诺。
有更好的方法吗?
如有任何帮助,我们将不胜感激。
要修复输入错误,您需要将函数定义为 async
:
async setupProducts(): Promise<boolean> {
...
return false;
}
请注意,this.inAppPurchase.ready(() => {...})
中的 true
值不会从 setupProducts()
中返回。它将从匿名函数 () => {...}
返回并且不会影响任何东西。
你可能需要像
这样的东西
async setupProducts(): Promise<boolean> {
...
await this.inAppPurchase;
this.products.push(this.inAppPurchase.get(productWWHS));
this.products.push(this.inAppPurchase.get(productISA));
if (!this.products[0]) {
return true;
}
return false;
}
如果 this.inAppPurchase
是函数而不是 getter,请不要忘记 ()
。
我正在使用应用内购买,如果由于某种原因我无法从 Google 或 [= 检索产品信息,我想将 UI 更改为 'unavailable' 41=] 应用商店。
ionViewDidEnter() {
this.platform.ready().then(async () => {
firebase.auth().onAuthStateChanged(async user => {
this.currentUser = user;
});
this.unavailable = await this.setupProducts();
console.log('available', this.unavailable);
});
}
setupProducts(): Promise<boolean> {
let productWWHS: string;
let productISA: string;
if (this.platform.is('ios')) {
productWWHS = 'prodID';
productISA = 'prodID';
} else if (this.platform.is('android')) {
productWWHS = 'prodID';
productISA = 'prodID';
}
this.inAppPurchase.ready(() => {
this.products.push(this.inAppPurchase.get(productWWHS));
this.products.push(this.inAppPurchase.get(productISA));
if (!this.products[0]) {
return true;
}
});
return false;
}
我在这个方法中做错了,它有错误 类型 'boolean' 不可分配给类型 'Promise'
我想以某种方式断言 inAppPurchase.get() 已经 return 编辑了一些东西,但它没有 return 承诺。
有更好的方法吗?
如有任何帮助,我们将不胜感激。
要修复输入错误,您需要将函数定义为 async
:
async setupProducts(): Promise<boolean> {
...
return false;
}
请注意,this.inAppPurchase.ready(() => {...})
中的 true
值不会从 setupProducts()
中返回。它将从匿名函数 () => {...}
返回并且不会影响任何东西。
你可能需要像
这样的东西async setupProducts(): Promise<boolean> {
...
await this.inAppPurchase;
this.products.push(this.inAppPurchase.get(productWWHS));
this.products.push(this.inAppPurchase.get(productISA));
if (!this.products[0]) {
return true;
}
return false;
}
如果 this.inAppPurchase
是函数而不是 getter,请不要忘记 ()
。