在使用“For”时使用我的回调函数有问题吗?

问题描述

我的代码

console.log('Start')
getMember((member) => { console.log(member) })
console.log('End')

function getMember(next) {
    for (let index = 0; index < 1000000000; index++) {
        // Simulation setTimeout()
    }
    next('In getMember')
}

返回:
开始
在 getMember
结束

我以为我得到了以下结果(见下文)但它没有,你能解释一下吗?

返回:
开始

在 getMember

谢谢,

伊夫


解决方法

console.log('Start')
function resolveAfter2Seconds() {
    return new Promise(resolve => {
        // setTimeout(() => { resolve('resolved') },2000);
        for (let index = 0; index < 1000000000; index++) { }
        resolve('resolved !');
    })
};

async function asyncCall() {
    console.log('calling');
    const result = await resolveAfter2Seconds();
    console.log(result);
}

asyncCall();

console.log('End');

返回:
开始
打电话

解决 !

我的印象是 Promise 可以更好地处理回调!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...