¿Alcance léxico en un bucle for que encierra una promesa?

Yo tengo unids objeto, que asignaid cuerdas paraproduct objetos.

for id of ids
  product = ids[id]
  console.log product # Prints out something different each loop. :)
  Product.create(product).then ->
    console.log product # Only prints out the last id each loop. :(

Estoy usando una biblioteca para las interacciones de la base de datos, que expone promesas (indicadas por elthen función anterior). Estoy tratando de imprimir elproduct variable dentro delthen función, pero solo parece que estoy obteniendo el últimoid enids, por lo que parece que es un problema de alcance. ¿Cómo puedo determinar elproduct variable correctamente para que imprima un producto diferente en elthen funciona cada ciclo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta