{ "id": "166898", "key": "TIMOB-24549", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "21050", "name": "Release 10.0.0", "archived": false, "released": true, "releaseDate": "2021-05-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2020-12-09T17:25:05.000+0000", "created": "2017-04-01T19:01:59.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "58117", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "152521", "key": "TIMOB-19834", "fields": { "summary": "Support ES6 for Titanium Application Development", "status": { "description": "This issue is being actively worked on at the moment by the assignee.", "name": "In Progress", "id": "3", "statusCategory": { "id": 4, "key": "indeterminate", "colorName": "yellow", "name": "In Progress" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "58119", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "174615", "key": "TIMOB-27710", "fields": { "summary": "TiAPI: Support optional callback functions for async methods that typically fire events", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "59173", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "176035", "key": "TIMOB-28340", "fields": { "summary": "TiAPI: Return Promise for Ti.UI.Window open() and close()", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "58123", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "170383", "key": "TIMOB-25536", "fields": { "summary": "TiAPI: Deprecate Ti global namespace, move to require/import based API's", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "58122", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "170921", "key": "TIMOB-25701", "fields": { "summary": "Add support for promises to Titanium and Alloy", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "58120", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "171011", "key": "TIMOB-25740", "fields": { "summary": "TiAPI: Add support for async/await", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "59055", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "174060", "key": "TIMOB-27355", "fields": { "summary": "iOS: Support native iOS 13+ JavaScriptCore promises", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updated": "2021-08-26T11:01:37.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "12642", "name": "Windows", "description": "Windows authoring support" }, { "id": "15101", "name": "Windows phone", "description": "Windows phone platform" } ], "description": "\"The modern development world is highly asynchronous\".\r\n\r\nI agree, so we should add support for promises that can be used from the JS world to improve the general callback structure. On the native side, we should a new class \"TiPromise\" that can be used in the SDK, native modules and Hyperloop to allow promises.\r\n\r\nI am not completely sure about the architecture so far, but we should definitely talk about it!", "attachment": [], "flagged": false, "summary": "TiAPI: Add support for Promises", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 1208, "state": "closed", "name": "2020 Sprint 21", "startDate": "2020-10-12T16:34:00.000Z", "endDate": "2020-10-23T16:34:00.000Z", "completeDate": "2020-10-23T02:32:43.674Z", "originBoardId": 114 }, { "id": 1209, "state": "closed", "name": "2020 Sprint 22", "startDate": "2020-10-27T02:33:00.000Z", "endDate": "2020-11-07T02:33:00.000Z", "completeDate": "2020-11-06T17:45:42.610Z", "originBoardId": 114 }, { "id": 1210, "state": "closed", "name": "2020 Sprint 23", "startDate": "2020-11-09T17:49:00.000Z", "endDate": "2020-11-20T17:49:00.000Z", "completeDate": "2020-11-20T17:46:00.641Z", "originBoardId": 114 }, { "id": 1211, "state": "closed", "name": "2020 Sprint 24", "startDate": "2020-11-23T18:12:00.000Z", "endDate": "2020-12-07T18:12:00.000Z", "completeDate": "2020-12-04T22:07:24.313Z", "originBoardId": 114 }, { "id": 1212, "state": "closed", "name": "2020 Sprint 25", "startDate": "2020-12-07T22:11:00.000Z", "endDate": "2020-12-18T22:11:00.000Z", "completeDate": "2020-12-18T16:35:34.544Z", "originBoardId": 114 }, { "id": 1213, "state": "closed", "name": "2020 Sprint 26", "startDate": "2020-12-21T16:40:00.000Z", "endDate": "2021-01-08T16:40:00.000Z", "completeDate": "2021-01-08T17:37:31.799Z", "originBoardId": 114 }, { "id": 126, "state": "closed", "name": "2018 Sprint 05 SDK", "startDate": "2018-02-25T19:38:08.926Z", "endDate": "2018-03-11T18:38:00.000Z", "completeDate": "2018-03-11T22:06:01.520Z", "originBoardId": 100 } ], "comment": { "comments": [ { "id": "416658", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "+1 for replacing all callback-based functions with Promise-based signatures, but this is such a major change that I think we should tackle this when we tackle Alloy v2.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2017-04-03T15:31:29.000+0000", "updated": "2017-04-03T15:31:29.000+0000" }, { "id": "435389", "author": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "body": "This issue is resolved by TIMOB-24610", "updateAuthor": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-03-08T15:31:02.000+0000", "updated": "2018-03-08T15:31:02.000+0000" }, { "id": "443877", "author": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "body": "I think this issue should be reopened, because it was not about general {{Promise}} support (native or polyfills).\r\nIt was about promise-based APIs vs callback-based, currently we still can not create native method which will return Promise to js side, all we have is old-school callback.\r\n\r\n-I have prepared POC for creating promise-based APIs for Android native modules:-\r\n* -[Branch|https://github.com/drauggres/titanium_mobile/commits/feature/promise-api]-\r\n* -[Builds|https://github.com/drauggres/titanium_mobile/releases/tag/v8.0.0.promise-preview]-\r\n\r\n-This is just {{proof-of-concept}} so I will not create PR from it (but feel free to use it if you'll find it worth).-\r\n\r\n-P.S. I don't think {{permissionRequest}} should reject Promise that was done only to show both resolving and rejection.-\r\n\r\n----\r\n\r\n\r\n\r\nI rethought everything above and cleaned up code: https://github.com/appcelerator/titanium_mobile/pull/10554", "updateAuthor": { "name": "s.volkov", "key": "s.volkov", "displayName": "Sergey Volkov", "active": true, "timeZone": "Europe/Moscow" }, "created": "2018-11-26T13:49:16.000+0000", "updated": "2018-12-20T12:30:40.000+0000" }, { "id": "443916", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "+1. While I would rather like to see full async/await support, this is a good step in that direction!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-11-27T08:53:32.000+0000", "updated": "2018-11-27T08:53:32.000+0000" }, { "id": "453851", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Re-opening as the \"duplicate\" ticket doesn't actually resolve this.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2020-01-28T15:17:15.000+0000", "updated": "2020-01-28T15:17:15.000+0000" }, { "id": "457267", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/10554", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2020-10-16T19:22:44.000+0000", "updated": "2020-10-16T19:22:44.000+0000" }, { "id": "457848", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master for 10.0.0 target Note that QE did not formally FR this yet, but the test suite was modified to include some tests for a couple new Promise-based APIs", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2020-12-09T17:25:50.000+0000", "updated": "2020-12-09T17:25:50.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }