/**
* Tests image load.
* @param {String} url
* @returns {Promise}
*/
function testImageUrl(url) {
return new Promise(function(resolve, reject) {
var image = new Image();
image.addEventListener('load', resolve);
image.addEventListener('error', reject);
image.src = url;
});
}
return testImageUrl(imageUrl).then(function imageLoaded(e) {
return imageUrl;
})
.catch(function imageFailed(e) {
return defaultImageUrl;
});
Когда у вас есть объект, вы можете указать функцию-заменитель для разделения каждой пары ключ-значение с помощью новой строки, затем использовать регулярное выражение для обрезания начальных пробелов, а затем использовать другое регулярное выражение для вставки пробела перед [112 ] пары ключ-значение. Затем просто запишите отформатированную строку в файл:
const obj = {"a":"1", "b":"2"};
const stringToWrite = JSON.stringify(obj, null, ' ')
// Trim leading spaces:
.replace(/^ +/gm, '')
// Add a space after every key, before the `:`:
.replace(/: "(?:[^"]+|\\")*",?$/gm, ' [110]amp;');
console.log(stringToWrite);
Хотя вы можете найти начальные пробелы более читабельными: [ 119]
const obj = {"a":"1", "b":"2"};
const stringToWrite = JSON.stringify(obj, null, ' ')
// Add a space after every key, before the `:`:
.replace(/: "(?:[^"]+|\\")*",?$/gm, ' [111]amp;');
console.log(stringToWrite);
JSON.stringify, имеет два необязательных параметра, первый из которых является функцией заменителя, а второй (что вам нужно) предназначен для пробелов.
const obj = {"a":"1", "b":"2"}
console.log(JSON.stringify(obj, null, 2))
Это даст вам:
{
"a": "1",
"b": "2"
}