Skip to content

Instantly share code, notes, and snippets.

@olyckne
Created September 6, 2022 08:08
Show Gist options
  • Save olyckne/df50d8a9f24a72674ada3f32ab263023 to your computer and use it in GitHub Desktop.
Save olyckne/df50d8a9f24a72674ada3f32ab263023 to your computer and use it in GitHub Desktop.
ember-concurrency async arrow fn issue
import Controller from '@ember/controller';
import { action } from "@ember/object";
import { tracked } from "@glimmer/tracking";
import { task, timeout, waitForProperty } from 'ember-concurrency';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
@tracked lol = false;
@task
foo = task(async () => {
this.lol = false;
let val = await waitForProperty(this, 'lol');
return val;
});
@action
setLolToTrue() {
this.lol = Math.random();
}
}
<h1>Welcome to ember-concurrency</h1>
<p>
Use this twiddle as a jumping off point for your ember-concurrency
experiments / bug reports.
</p>
<p>
<button {{on "click" (perform this.foo)}}>
Perform foo
</button><br>
</p>
<p>
state: {{this.foo.state}}<br>
last.value: {{this.foo.last.value}}
</p>
<p>
<button {{on "click" this.setLolToTrue}}>
Set Lol to true
</button>
</p>
{
"version": "0.17.1",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
"ember": "3.18.1",
"ember-template-compiler": "3.18.1",
"ember-testing": "3.18.1"
},
"addons": {
"@glimmer/component": "1.0.0",
"ember-concurrency": "2.3.4"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment