찾다

 >  Q&A  >  본문

javascript - setTimeout 및 Promise에 대한 의심

setTimeout(resolve('World'), ms);setTimeout(resolve, ms, 'World');의 차이점에 대해 혼란을 표현했습니다.

으아악
代言代言2714일 전821

모든 응답(5)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-06-12 09:23:50

    func()와 func의 차이점입니다. setTimeout의 첫 번째 매개변수는 func입니다. func()를 사용하면 첫 번째 매개변수인 반환값과 동일합니다.
    예:

    으아아아

    대략 다음과 동일:

    으아아아

    회신하다
    0
  • 三叔

    三叔2017-06-12 09:23:50

    함수 이름이 아닌 전달된 첫 번째 매개변수가 즉시 실행됩니다

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-12 09:23:50

    Promise无关,当你执行到setTimeout(resolve('World'), ms);时,浏览器就已经自动执行了resolve('World')(예:

    ) 으아악

    이때 바로 실행test.

    회신하다
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:23:50

    setTimeout의 첫 번째 매개변수는 함수여야 합니다

    기능

    기능

    (왜 이렇게 많은 사람들이 이해하지 못하나요?)

    setTimeout(resolve, ms, 'World'); 其中 resolve 是一个函数,因此这段的行为正常
    setTimeout(resolve('World'), ms); 其中 resolve('World') 不是函数,是什么决定于 resolve 的返回值类型,但无论如何,resolve 타이머를 등록하면 이미 실행된 상태이므로 당연히 지연효과는 없습니다

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-06-12 09:23:50

    ===================================
    다음 답변은 유효하지 않습니다. 신중하게 질문하세요. .
    일반적으로 차이는 없습니다.

    그냥! ! ! !

    IE 브라우저에서 setTimeout(resolve, ms, 'World') 지원에 문제가 있습니다. (IE <= 9가 문제를 일으킬 것 같습니다)

    참고 자료: (내부 노란색 배경의 메모 참조)

    WindowOrWorkerGlobalScope.setTimeout()

    회신하다
    0
  • 취소회신하다