Я написал следующий код для изменения размера изображения: < /p> [code]Main().then(function(x) { console.log(x) });
Main=function() { Base64() .then(function(i) { ImageObject(i) }) .then(function(i) { x = Resize(i); NOW RETURN 'x' AS A PROMISE }) //*** }); }
function Base64(i) { //Generate base64 of the image let reader = new FileReader(); reader.readAsDataURL(imaginary.file()); return new Promise((resolve, reject) => { reader.onload = () => { resolve(reader.result) } }); }
function ImageObject(i) { //Load the image let img = new Image(0, 0); img.src = i; return new Promise((resolve, reject) => { img.onload = () => { resolve(img) } }); }
function Resize(i) { //Resize image and return base64 let canvas = document.createElement('canvas'); let canvasContext = canvas.getContext('2d'); canvas.width = 300; canvas.height = 200; canvasContext.drawImage(i, 0, 0, canvas.width, canvas.height); return canvas.toDataURL(); //Return the resized base64 } [/code] В строке с *** мне нужно вернуть x как обещание разрешить Main быть 'thenable'.
Я сделал рекурсивную функцию в Nodejs, которая в обещании. Предполагается, что он будет рекурсивно запросить сервер, и он имеет два условия. Если он заканчивается из максимального количества серверов, он вернет ошибку и уйдет. Эта часть работает...
Я пытаюсь вызвать асинхронную функцию и получить результат, но вместо реальных данных я получаю ожидающее обещание. Вот упрощенная версия моего кода:
async function getData() {
const response = await fetch('
const result = await response.json();...
Я пытаюсь получить данные из API Star Wars, используя fetch () и async/await. Вот мой код:
const starWarsGang = async () => {
const res = await fetch(
const data = res.json(); // Expecting JSON here
console.log(data);
Согласно документации обещание. Все является статическим методом. Этот контекст не должен понадобиться. Кроме того, это занимает ровно один аргумент. Итак, почему
.then( Promise.all )
Работа? И почему
.then( Promise.all.bind( Promise ) )...