let promise = new Promise(resolve => {
setTimeout(() => resolve("done!"), 1000);
});
promise.then(alert); // shows "done!" after 1 second
//在上面的代码片段中,当我们没有在警报中传递任何参数时,警报如何获取“done”值
最佳答案
对于 Promise,可以返回两种情况:Accept
(成功)Reject
(失败)。通常我们会做这样的事情来实现 promise 响应,正如你在这里看到的,我们使用 2 个临时变量来发出警报,如果成功,则结果变量将发出警报,如果失败,则错误变量将发出警报。
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error("Whoops!")), 1000);
});
// reject runs the second function in .then
promise.then(
result => alert(result), // doesn't run
error => alert(error) // shows "Error: Whoops!" after 1 second
);
如果您只对成功完成感兴趣,那么您可以使用它。
let promise = new Promise(resolve => {
setTimeout(() => resolve("done!"), 1000);
});
promise.then(alert); // shows "done!" after 1 second
它的作用是什么?它实际上会得到“完成”的结果,并且由于您已经应用了警报,“完成”将被传递给警报,如下所示 alert("done")
.
要直接捕获,您可以使用以下命令:
let promise = new Promise((resolve,reject) => {
setTimeout(() => reject("failed!"), 1000);
});
promise.catch(alert); // shows "failed!" after 1 second
关于javascript - 向 then() 提供一个函数参数的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53276481/