第一(解决)
我正在尝试node.js的承诺。
function testpromise(data, ms) {
return new Promise((resolve, reject) => {
if (data=="hello") {
setTimeout(resolve(data), ms);
return;
}
reject("emm");
})
}
testpromise("123", 3000)
.then((res) => { console.log(res) })
.catch((err) => { console.log(err) });
console.log("123");如果我使用test录(),并提供一个“123”(拒绝)参数。
这个程序是错误的。
否则,如果我提供了一个"hello“参数(解析),那么它是正确的。
为什么会发生这种情况?
最后的
向此函数提供一个"hello“参数:
testpromise("hello", 3000)
.then((res) => { console.log(res) })
.catch((err) => { console.lof(err) });
console.log("123");那么,节点返回是正确的。
但
setTimeout()只有结果,没有延迟.
直观地说:

"123“之前的”你好“,这是正确的。
但是没有拖延,没有拖延,没有拖延!
为什么?
帮帮我求你了!
非常感谢。
发布于 2021-01-27 16:38:53
setTimeout(()=>resolve(data), ms);必须将函数传递给setTimeout,但不能传递函数的结果。
https://stackoverflow.com/questions/65923178
复制相似问题