JS 약속과 관련하여 중요한 것을 놓친 것처럼 보입니다. Promise의 filter
메서드가 약속 내용이 Array/Iterable로 간주되는 이유는 무엇입니까? 비 직관적 인 것처럼 보이지 않습니까? 여기 Bluebird Promise 필터. 왜 배열인가?
Promise.filter(
Iterable<any>|Promise<Iterable<any>> input,
function(any item, int index, int length) filterer,
[Object {concurrency: int=Infinity} options]
) -> Promise
- 스칼라, 그리고 Promise.filter
는 술어가 걸리는 매우 논리적 및 Resolved
약속을 반환하는 경향이있다
Promise.filter(
<any>|Promise<any> input,
function (any item) predicate
) -> Promise
이 그것을 사용하는 방법입니다 :
내용이 일부Error
없는 경우와 술어와
Rejected
을 제공 선택했으면
getUserFromDatabase()
.filter(user => user.isEmailValid)
.then(
user => { req.statusCode = 200; } // user is okay
err => { req.statusCode = 404; } // user is not okay
)
Promise.filter()는 ['Array.prototype.filter()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)를 모델로합니다./필터), 스칼라 이후 아닙니다. – robertklep
@robertklep하지만 Promises는 배열과 어떤 관련이 있습니까? 두 가지 모두를 일반 컨테이너로 고려해도 배열에 포함 된 가치에 필터링을 적용하는 것이 논리적 인 것으로 보입니다. 아니면 내가 틀렸어? –
Promise.filter()는 http://bluebirdjs.com/docs/api/promise.filter.html에 잘 설명되어 있습니다. 약속 모음에서 작동하는 기능입니다. 그게 그것이 무엇을 위해 지어 졌는지입니다. – jfriend00