2017-03-29 1 views
0

global.Promise이 기본 약속 구현인지 확인하기 위해 Node.js에 검사 할 방법이 있습니까? 블루 버드 약속 등과는 반대로?네이티브 약속 대 블루 버드 약속

+1

API에서 오리를 입력하면 그 반대입니다. 블루 버드를위한'.promisifyAll' 또는 Q를위한'.fapply'라고 말하면 네이티브를 감지하는 데 도움이되지 않습니다. 나는 글로벌 대체를 확신하지 못합니다. 우선은 좋은 생각입니다. – Matt

+0

@Matt global.Promise, 내 라이브러리의 사용자가 그것을 할 수도 있지만, 나는 그것을 제어 할 수 있지만 그것을 감지해야합니다. 나는 global.Promise를 대체하는 것이 나쁜 행동이라고 동의한다. –

답변

2

블루 버드 확장 기능 중 하나가있는 경우 당신이 볼 수있는 기능 테스트 및 테스트를 할 수있는 :

function testBluebird() { 
    // test to see if a representative sample of Bluebird-specific features are present 
    return Promise && Promise.join && Promise.try && Promise.method && Promise.map; 
} 

자바 스크립트의 여러 가지와 마찬가지로, 당신은 아마 기능 만 원하는 있는지 확인하기 위해 테스트해야합니다 특정 라이브러리가로드되었는지 확인하려고 시도하지 않고 사용하는 것이 좋습니다.

+0

감사합니다. 저는 약속이 Bluebird인지 아닌지를 결정하는 데 가장 관심이 있습니다. 그러나 Bluebird에 대해서는이 방법이 유용 할 것입니다. –

+0

@AlexanderMills - 정말 어떤 문제를 해결하려고합니까? 네이티브인지를 왜 알고 싶습니까? Bluebird 외에도 확실한 다른 비 Promise 구현이 있으므로이 false를 반환하면 약속이 원래의 것임을 보장하지 않습니다. – jfriend00

+0

기본 Promise 구현을 패치해야하지만 기본이 아닌 경우 Promise에 패치를 적용하고 싶지 않습니다. –