w3schools usar sincronas promises promesas funciones ejemplo cuando callbacks await async asincronia anidadas javascript promise angular-promise

usar - javascript, promesas, cómo acceder a esta variable dentro de un ámbito de aplicación



promise javascript (1)

Esta pregunta ya tiene una respuesta aquí:

Quiero poder llamar a una función dentro del ámbito .then , y para eso uso la forma this.foo () . Pero si hago esto dentro del . Entonces obtengo un error, ya que esto parece estar perdido. ¿Que puedo hacer?

En este código, esto sería equivalente a tener la misma salida para el objeto este

console.log(this) one().then(function() { console.log(this) }) function one() { var deferred = $q.defer(); deferred.resolve() return deferred.promise; }

Esto tampoco parece funcionar

console.log(this) var a = this; one().then(function(a) { console.log(a) })


Su segundo ejemplo de código es el camino correcto a seguir. Debido a que el alcance cambia en la nueva función, this también cambia, por lo que tiene derecho a hacer una referencia a this fuera de la función.

La razón por la que falló es porque la función está utilizando a que pasó a la función en lugar de la global que definió fuera de ella.

En otras palabras:

var a = this; one().then(function () { console.log(a) });