2017-05-19 1 views
-1

클라이언트에서 Javascript를 사용하여 Promise를 사용하여 (적어도 나를 위해) 이상한 행동을하고 있습니다.배열 내부에 Promise가 없습니다.

const getSomething = (h) => { 
    return new Promise(
     (resolve, reject) => { 
      //using h (accessing element) 
      .... 

지금 함수가 객체의 배열을 받아 들여야하지만 약속 내부 배열을 사용하는 경우가 undefined입니다 : 시간 객체입니다

는이 같은 것이었다 코드의 조각을했다

const getSomething = (hs) => { 
    return new Promise(
     (resolve, reject) => { 
      const a = hs[0] //hs undefined 

은 뭔가 이런 식으로도 시도 :

const getSomething = (hs) => { 
    const _hs = []; 
    _.each(hs, (h) => { h.push(getH(h._id)); }); //where getH return the same object contained in array 
    return new Promise(
     (resolve, reject) => { 
      const a = _hs[0] //_hs undefined 

나는 이것이 메모리와 관련된 것이 될 수 있다고 생각하지만, 내가 왜 잘못하고 있는지 알지 못한다. 아이디어가 있으십니까?

+1

'getSomething (undefined) '를 호출하지 않는 한 hs는 결코 정의되지 않을 것입니다. – aaaaaa

+0

Promise 전에'console.log (hs)'를 해봤습니까? Promise가 실행되기 전에'hs '를 수정하고 있습니까? 실행중인 코드의 나머지가 끝날 때까지 실행되지 않기 때문에 비동기식입니다. –

+0

hs 정의되어 있고 디버그에서 볼 수 있지만 Promise 내부에는 없습니다. – perusopersonale

답변

0

죄송합니다. :) hs라는 변수를 선언 한 후 몇 줄을 보여줍니다.

+1

웁스! 음, 적어도 알아 냈어! –

+0

전혀 걱정할 필요가 없습니다. 모두에게 일어납니다. – aaaaaa

관련 문제