mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-09 17:17:41 +00:00
Not sure why there's still stuff in the event loop, but whatever.
This commit is contained in:
parent
8e6203b29a
commit
260f237be2
2 changed files with 4 additions and 6 deletions
9
index.js
9
index.js
|
|
@ -14,10 +14,11 @@ exports.LMLayer = class LMLayer {
|
|||
predictWithContext({transform, context, _token}) {
|
||||
let token = this._currentToken++;
|
||||
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this._promises.has(token)) {
|
||||
reject(`Existing request with token ${token}`);
|
||||
}
|
||||
this._promises.set(token, resolve);
|
||||
|
||||
this._worker.postMessage({
|
||||
kind: 'predict',
|
||||
|
|
@ -25,11 +26,7 @@ exports.LMLayer = class LMLayer {
|
|||
transform,
|
||||
context
|
||||
});
|
||||
|
||||
this._promises.set(token, resolve);
|
||||
});
|
||||
|
||||
return promise;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -45,8 +42,8 @@ exports.LMLayer = class LMLayer {
|
|||
}
|
||||
|
||||
if (kind === 'suggestions') {
|
||||
accept(event.data);
|
||||
this._promises.delete(token);
|
||||
accept(event.data);
|
||||
} else {
|
||||
throw new Error(`Unknown message kind: ${kind}`);
|
||||
}
|
||||
|
|
|
|||
1
test.js
1
test.js
|
|
@ -10,6 +10,7 @@ test('Can provide context to LMLayer', async t => {
|
|||
transform: { insert: 'D', deleteLeft: 0, deleteRight: 0 },
|
||||
context: { left: '' }
|
||||
});
|
||||
|
||||
let {suggestions} = message;
|
||||
|
||||
t.deepEqual(suggestions, [
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue