interface IImageSize {
width: number;
height: number;
}
const getImageSize = (imageDataUrl: string): Promise<IImageSize> =>
new Promise((resolve): void => {
//Создаем промис, его же и возвращаем
const image = new Image();
image.src = imageDataUrl;
image.onload = () => {
const { width, height } = image;
const imageSize: IImageSize = {
width,
height,
};
resolve(imageSize); // резолвим промис с необходимым нам обьектом
};
});
// вызываем функцию либо внутри другой асинхронной функции, дабы был доступен оператор await
const anyFunction = async (): Promise<void> => {
const imageSize: IImageSize = await getImageSize("<any_image_url>");
const { width, height } = imageSize;
};
//либо поступаем как с любым другим промисом
getImageSize("<any_image_url>").then((imageSize: IImageSize): void => {
const { width, height } = imageSize;
});
{
init: function,
avrukh: function
}
{
testHandlers: testHandlers,
init: function,
avrukh: function
}
save_note = document.createElement("div");
save_note.className = "note";
let save_note = document.createElement("div");
save_note.className = "note";
..................
function delete_note(note_node){
section.removeChild(note_node);
}
delete_icon.addEventListener('click', () => { delete_note(save_note); });
Time.prototype.getMinutes = function(){ // function вместо стрелочной, дабы экземпляр прототипа передался как контекст
console.log(this.minutes); // this как конкретный экземпляр
}
() => {
const replacedText = toggle ? text1 : text2;
toggle = !toggle;
document.querySelector(anySelector).innerHtml = replacedText;
}
const array = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];
const processArray = async arrayToProcess => {
for (let now = 0; now < arrayToProcess.length; now++) {
const currentItem = arrayToProcess[now];
await anyAsyncFunction(currentItem)
}
}
const anyAsyncFunction = anyData => new Promise((resolve, reject) => {
$.ajax({
url: '/assets/themes/theme/send.php',
method: 'post',
data: {
text: anyData,
},
success: resolve
});
})
const reloadPage = () => location.reload();
const runBdQuery = query => new Promise((resolve, reject) => {
deDB.run(query, function(err) {
if (err)
reject(err);
res = true;
resolve(res) // тут все что угодно
console.log('Step1');
});
})
const makeQuery = async () => {
const query = "SELECT id, dt FROM meta";
await runBdQuery(query);
await step1();
----------
await step6();
}
makeQuery();
reader.onload = function(fileEvent) {
this.context.decodeAudioData(fileEvent.target.result, calcTempo);
}.bind(this)