Sto provando a scrivere il codice per il problema sopra descritto. Ho provato a trovare una soluzione. Questo è ciò che attualmente ho.Disegna linee continue su tela HTML una dopo l'altra
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var drawColorLine = function(start, end, color) {
var deltaX, deltaY, i = 0,
currLength = 0,
isHor, isVert;
deltaX = end[0] - start[0];
deltaY = end[1] - start[1];
context.strokeStyle = color;
isHor = deltaX === 0 ? 0 : 1;
isVert = deltaY === 0 ? 0 : 1;
function draw() {
context.beginPath();
context.moveTo(start[0] + currLength * isHor, start[1] + currLength * isVert);
currLength = currLength + 0.5 * i;
context.lineTo(start[0] + currLength * isHor, start[1] + currLength * isVert);
context.stroke();
if (currLength <= Math.max(deltaX, deltaY)) {
i = i + 1;
requestAnimationFrame(draw);
}
}
draw();
};
drawColorLine([40, 40], [100, 40], '#116699');
drawColorLine([40, 40], [40, 100], '#bb11dd');
<canvas id='canvas' width='400' height='400'></canvas>
Il problema è sia vengono attratti allo stesso tempo. Uno dovrebbe seguire l'altro. Usando le promesse è possibile ritardare la seconda funzione mentre la prima funzione viene eseguita e successivamente eseguire la seconda funzione? Ho provato a leggere un po 'su Promises, ma non sono riuscito a tradurre in codice ciò che ho capito.
Grazie in anticipo.
Inizialmente ho scritto una soluzione con callback. Ho dovuto disegnare molte linee. Voglio farlo in sequenza. Il callback non sembrava la via da percorrere o non riuscivo a trovare un modo carino per estendere la mia funzione. Ho provato a leggere le promesse da vari posti, ma non ho ancora una buona idea di come usarle in modo efficace. Qual è il modo di imparare a rileggere di nuovo le cose? –
Puoi trovare molte informazioni su https://github.com/kriskowal/q/wiki/General-Promise-Resources – Bergi
Le callback funzionerebbero altrettanto bene, dovresti solo trasformare le regole un po ': "ogni async la funzione deve prendere una richiamata e chiamarla quando è finita "," tutto dopo che una cosa asincrona deve andare nella sua callback, e poi richiamare alla fine ". Passa continuazioni attorno a quando si ritorna una promessa. – Bergi