Как я могу сделать простой, неблокированный вызов функции Javascript? Например:
//begin the program
console.log('begin');
nonBlockingIncrement(10000000);
console.log('do more stuff');
//define the slow function; this would normally be a server call
function nonBlockingIncrement(n){
var i=0;
while(i<n){
i++;
}
console.log('0 incremented to '+i);
}
выходы
"beginPage"
"0 incremented to 10000000"
"do more stuff"
Как я могу сформировать этот простой цикл для асинхронного выполнения и вывода результатов с помощью функции обратного вызова? Идея состоит в том, чтобы не блокировать "делать больше вещей":
"beginPage"
"do more stuff"
"0 incremented to 10000000"
Я пробовал следующие руководства по обратным вызовам и продолжениям, но все они, похоже, полагаются на внешние библиотеки или функции. Ни один из них не отвечает на вопрос в вакууме: как написать Javascript-код, чтобы быть неблокирующим??
Я очень сильно искал этот ответ, прежде чем спрашивать; пожалуйста, не думайте, что я не смотрел. Все, что я нашел, это Node.js specific ([1], [2], [3], [4], [5]) или иным образом относится к другим функциям или библиотекам ([6], [7], [8], [9], [10], [11]), особенно JQuery и setTimeout()
. Пожалуйста, помогите мне написать неблокирующий код с помощью Javascript, а не с помощью Javascript-инструментов, таких как JQuery и Node. Пожалуйста, перечитайте вопрос, прежде чем отмечать его как дубликат.