Estoy atascado en algo que creo que debería ser bastante simple. Tenemos un componente secundario que acepta una entrada como tal:
@Input() accessories: { [key: string]: Accessory };Y cuando el componente se inicializa, la plantilla puede leer y mostrar los valores, pero también los necesitamos en el componente, pero no están disponibles. Así que estamos tratando de usar setTimeout para forzar un cambio:
setTimeout(() => { var resultArray = this.accessories; if (this.accessories!= undefined) { accessories.forEach(x => Object.keys(this.accessories).findIndex(key => { if (this.accessories[key].accessoryId == x.accessoryId && this.accessories [key].code == "RECORD") { this.isRecord= true; } }))}}, 2000);Pero todavía se dispara después de que lo necesitamos. Estoy tratando de implementar una promesa, que no he usado antes, así que busco orientación sobre cómo obtener esta variable cuando esté disponible. Estoy tratando de esperar el resultado antes de continuar con el proceso.
Puedes construir una Promesa como esta:
function foo() { return new Promise((resolve, reject) => { setTimeout(() => { const returnValue = 'foo'; resolve(returnValue); }, 2000); }); } function main() { foo().then(res => console.log(res)); // 'foo' }