Merge pull request #7444 from aaronraimist/promise-defer

Fix riot-web Promise.defer warnings (#7409)
This commit is contained in:
Travis Ralston 2018-10-08 21:18:22 -06:00 committed by GitHub
commit 92db2b85f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 77 additions and 81 deletions

View file

@ -33,35 +33,33 @@ export async function getVectorConfig(relativeLocation) {
} }
function getConfig(configJsonFilename) { function getConfig(configJsonFilename) {
let deferred = Promise.defer(); return new Promise(function(resolve, reject) {
request(
request( { method: "GET", url: configJsonFilename },
{ method: "GET", url: configJsonFilename }, (err, response, body) => {
(err, response, body) => { if (err || response.status < 200 || response.status >= 300) {
if (err || response.status < 200 || response.status >= 300) { // Lack of a config isn't an error, we should
// Lack of a config isn't an error, we should // just use the defaults.
// just use the defaults. // Also treat a blank config as no config, assuming
// Also treat a blank config as no config, assuming // the status code is 0, because we don't get 404s
// the status code is 0, because we don't get 404s // from file: URIs so this is the only way we can
// from file: URIs so this is the only way we can // not fail if the file doesn't exist when loading
// not fail if the file doesn't exist when loading // from a file:// URI.
// from a file:// URI. if (response) {
if (response) { if (response.status == 404 || (response.status == 0 && body == '')) {
if (response.status == 404 || (response.status == 0 && body == '')) { resolve({});
deferred.resolve({}); }
} }
reject({err: err, response: response});
return;
} }
deferred.reject({err: err, response: response});
return;
}
// We parse the JSON ourselves rather than use the JSON // We parse the JSON ourselves rather than use the JSON
// parameter, since this throws a parse error on empty // parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're // which breaks if there's no config.json and we're
// loading from the filesystem (see above). // loading from the filesystem (see above).
deferred.resolve(JSON.parse(body)); resolve(JSON.parse(body));
} },
); );
});
return deferred.promise;
} }

View file

@ -60,12 +60,12 @@ import CallHandler from 'matrix-react-sdk/lib/CallHandler';
import {getVectorConfig} from './getconfig'; import {getVectorConfig} from './getconfig';
let lastLocationHashSet = null;
// Disable warnings for now: we use deprecated bluebird functions // Disable warnings for now: we use deprecated bluebird functions
// and need to migrate, but they spam the console with warnings. // and need to migrate, but they spam the console with warnings.
Promise.config({warnings: false}); Promise.config({warnings: false});
let lastLocationHashSet = null;
function initRageshake() { function initRageshake() {
rageshake.init().then(() => { rageshake.init().then(() => {
console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome."); console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome.");
@ -179,37 +179,35 @@ function makeRegistrationUrl(params) {
} }
function getConfig(configJsonFilename) { function getConfig(configJsonFilename) {
let deferred = Promise.defer(); return new Promise(function(resolve, reject) {
request(
request( { method: "GET", url: configJsonFilename },
{ method: "GET", url: configJsonFilename }, (err, response, body) => {
(err, response, body) => { if (err || response.status < 200 || response.status >= 300) {
if (err || response.status < 200 || response.status >= 300) { // Lack of a config isn't an error, we should
// Lack of a config isn't an error, we should // just use the defaults.
// just use the defaults. // Also treat a blank config as no config, assuming
// Also treat a blank config as no config, assuming // the status code is 0, because we don't get 404s
// the status code is 0, because we don't get 404s // from file: URIs so this is the only way we can
// from file: URIs so this is the only way we can // not fail if the file doesn't exist when loading
// not fail if the file doesn't exist when loading // from a file:// URI.
// from a file:// URI. if (response) {
if (response) { if (response.status == 404 || (response.status == 0 && body == '')) {
if (response.status == 404 || (response.status == 0 && body == '')) { resolve({});
deferred.resolve({}); }
} }
reject({err: err, response: response});
return;
} }
deferred.reject({err: err, response: response});
return;
}
// We parse the JSON ourselves rather than use the JSON // We parse the JSON ourselves rather than use the JSON
// parameter, since this throws a parse error on empty // parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're // which breaks if there's no config.json and we're
// loading from the filesystem (see above). // loading from the filesystem (see above).
deferred.resolve(JSON.parse(body)); resolve(JSON.parse(body));
} },
); );
});
return deferred.promise;
} }
function onTokenLoginCompleted() { function onTokenLoginCompleted() {

View file

@ -68,11 +68,11 @@ export default class WebPlatform extends VectorBasePlatform {
// annoyingly, the latest spec says this returns a // annoyingly, the latest spec says this returns a
// promise, but this is only supported in Chrome 46 // promise, but this is only supported in Chrome 46
// and Firefox 47, so adapt the callback API. // and Firefox 47, so adapt the callback API.
const defer = Promise.defer(); return new Promise(function(resolve, reject) {
global.Notification.requestPermission((result) => { global.Notification.requestPermission((result) => {
defer.resolve(result); resolve(result);
});
}); });
return defer.promise;
} }
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) { displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
@ -103,31 +103,31 @@ export default class WebPlatform extends VectorBasePlatform {
} }
_getVersion(): Promise<string> { _getVersion(): Promise<string> {
const deferred = Promise.defer();
// We add a cachebuster to the request to make sure that we know about // We add a cachebuster to the request to make sure that we know about
// the most recent version on the origin server. That might not // the most recent version on the origin server. That might not
// actually be the version we'd get on a reload (particularly in the // actually be the version we'd get on a reload (particularly in the
// presence of intermediate caching proxies), but still: we're trying // presence of intermediate caching proxies), but still: we're trying
// to tell the user that there is a new version. // to tell the user that there is a new version.
request(
{
method: "GET",
url: "version",
qs: { cachebuster: Date.now() },
},
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
if (err === null) err = { status: response.status };
deferred.reject(err);
return;
}
const ver = body.trim(); return new Promise(function(resolve, reject) {
deferred.resolve(ver); request(
}, {
); method: "GET",
return deferred.promise; url: "version",
qs: { cachebuster: Date.now() },
},
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
if (err === null) err = { status: response.status };
reject(err);
return;
}
const ver = body.trim();
resolve(ver);
},
);
});
} }
getAppVersion(): Promise<string> { getAppVersion(): Promise<string> {