Comments (3)
If you are interested, the code for the async and
helper is below:
import { helper } from '@ember/component/helper'
import RSVP from 'rsvp'
import DS from 'ember-data'
export function asyncAnd (params) {
if (!params || !params.length) return DS.PromiseObject.create({promise: RSVP.resolve(true)})
// Need to wait for all params to be complete
const promises = params.map(param => {
if (typeof param.then === 'function') return param
return RSVP.resolve(param)
})
// Look to see if any of the results returned a 'false'. If they did, then the whole check fails
const result = RSVP.all(promises)
.then(results => {
for (let i = 0; i < results.length; i++) {
if (!result) return result
}
return results[results.length - 1]
})
return DS.PromiseObject.create({promise: result})
}
export default helper(asyncAnd)
It's a bit crude, and might not actually work, but I think it gets the idea across.
from ember-truth-helpers.
FWIW, I think you can do something a bit simpler in the helper:
export default helper(function asyncAnd (params) {
let promise = RSVP.all(params)
.then(results => {
for (let i = 0; i < results.length; i++) {
if (!result) return result
}
return results[results.length - 1]
})
return DS.PromiseObject.create({promise: result})
})
from ember-truth-helpers.
Closing as stale. I see mentions of PromiseObject
which is not a recommended API nowaday.
from ember-truth-helpers.
Related Issues (20)
- Helper "not" has wrong value when passing PromiseProxy
- not-eq has unknown reexport HOT 1
- Helper is-empty returns false when passing undefined
- Update to ember-cli-babel@7 HOT 2
- `or` doesn't work the same way as `||` in JavaScript HOT 3
- Update `README` to note that `or`, `and` and `xor` **do** short-circuit HOT 2
- Short-circuit Problem With `SafeString` Using `or` (And Maybe Other Helper)
- Ember Global Deprecation Warning HOT 1
- `or` cant be used when or condition value can be `false` HOT 7
- Project maintenance HOT 4
- Typescript conversion HOT 1
- Can't `npm i` master branch to use with `ember-template-imports` HOT 2
- Cut a release? HOT 12
- Incorrect glint return type for `or` helper in 4.0.0-beta.0 HOT 2
- [QUESTION] `ember-source` compat HOT 3
- `and` returns non-boolean value rather than converting it (which breaks default value logic)
- Document usage with glint additionalSpecialForms config HOT 1
- Memory leaks with `and ` and `or` after they were converted to class based helpers HOT 3
- Importing from package root does not work in classic builds + `.gts`
- Show how to use in template imports
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ember-truth-helpers.